歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

arm mini2440 基於v4l2 ffmpeg x264的視頻遠程監控

網絡上盛傳的基於mini2440的攝像頭監控一般是基於 MJPEG-Streamer。這種方法利用的是V4L2的底層驅動,然後配合mjpeg這種格式的流傳輸,然後通過浏覽器浏覽視頻和控制。

下面用一個更接近真實的IP-camera的方案來實現。

參考:http://www.linuxidc.com/Linux/2013-04/83108.htm

文本照搬他的代碼,只是將他的webcam_server交叉編譯到arm上,webcam_shower編譯到pc上。

這種方案是用的V4L2的視頻驅動,然後配合ffmpeg、x264的軟件編解碼,通過udp上傳至pc顯示,視頻的編解碼真的非常麻煩,幸好有很多開源的編解碼庫可以使用,幾百行的代碼就可以實現h.264的流編碼與傳輸。

usb攝像頭得到的數據格式一般是YUV422,如果用的是cmos 攝像頭可能是raw原始數據格式,YUV422,是在raw基礎上色彩抽點編碼,因為人眼對亮度的敏感大於對色彩的敏感,所以並非對所有的色彩編碼,這樣的數據量會非常的大,視頻編解碼格式就不討論了,很多很復雜,當然,你會了,就不會覺得難。

ffmpeg和x264的作用是將YUV422再編碼成H.264

上圖看效果,這是在linux中接的圖,窗口中顯示的是從2440usb攝像頭上傳上來的視頻

這是實物圖,手機拍的

廢話少說,一步一步實現

1、平台

硬件:arm mini2440,usb攝像頭

軟件:Fedora14,arm-linux-gcc v4.4.3

2、源文件

ffmpeg-0.10.1.tar.gz

last_x264.tar.bz2

zlib-1.2.5.tar.gz (mini2440中沒有libz.so,但是程序運行時需要這個庫支持,所以下載源文件交叉編譯)

以上文件只要會搜索的人都能找到

最後是webcam應用程序,下載地址:http://www.linuxidc.com/Linux/2013-04/83108p7.htm 的2.zip

Copyright © Linux教程網 All Rights Reserved