描述如下: 使用CMOS摄像头录像并使用cpu硬件进行h.264进行编码存储,通过网络传输到服务器端,要求实时的进行传输。
我的硬件平台是IMX6D,BSP是linux3.0.35的,CMOS摄像为OV5640,已正常工作。
我的操作如下:
1. 先使用gst-launch 将camera存储到本地。
gst-launch -v mfw_v4lsrc device=/dev/video0 ! queue ! vpuenc codec=6 ! matroskamux ! filesink location=test.264
2. 移植live555到imx6,并运行./live555MediaServer
3.在windows安装VLC,使用里面的网络串流打开之前存储到本地的test.264,可以看到摄像头拍摄的视频。
该方法出现的额问题:
1.使用gst-launch保存视频到本地的时候,会出现运行一段时间后会出现程序自动退出的情况。如下所示:
[INFO] chromaInterleave 0, mapType 0, linear2TiledEnable 0
ERROR: from element /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2582): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstV4LSrc:mfwgstv4lsrc0:
streaming task paused, reason error (-5)
Execution ended after 32443697670 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
2.假如问题一解决,但是这样不能实时的进行视频流传输了,必须得先存储到本地后才能在windows端看到图像。
我也尝试过一边存储一边传输,但是VLC一打开rtsp,这边的gst-launch就中断了。
我的方法不能实现实时的Camera视频流传输,请问大家有什么好的建议吗?谢谢:)
|