基於某種原因,需要將以前的攝像頭利舊做成網絡攝像頭,因此開始查資料着手搭建
環境Debian 8.6(arm)
一句話概括,用ffmpge將攝像頭/dev/video0流數據壓入ffserver,ffserver對外提供流服務
直接上操作
1.首先更新apt源,把靠譜的ffmpeg源加進去
修改/etc/apt/sources.list,添加
deb http://archive.deb-multimedia.org jessie main non-free
2.更新並安裝
apt-get install deb-multimedia-keyring apt-get update apt-get install ffmpeg libx264-dev
無事安裝完成
3.配置文件
(從參考網頁拷貝了一例,實際參考http://trac.ffmpeg.org/wiki/ffserver#Creatingtheconfigurationfile)
vim /etc/ffserver.conf
4.啟動服務
服務開始提供網絡輸出,接受設備輸入。直接運行
ffserver
5.將設備信號壓入服務
ffmpeg -f v4l2 -i /dev/video0 -s 352x240 -r 24 -vcodec libx264 -an http://127.0.0.1:8090/feed1.ffm
我報了2個錯,順便記錄下解決過程
a.報error: Missing Audio stream which is needed for this ffm.
解決:在對應<Stream>標簽里打開NoAudio標簽即可,因為我攝像頭不需要聲音,需要聲音的還沒研究
(https://askubuntu.com/questions/644102/ffserver-ffmpeg-missing-audio-stream-which-is-needed)
b.提示我參數有問題(原文找到貼上來),意思是我的比特率,視頻寬高設置不匹配,需要調整。
解決:檢查屏幕輸出,找到
Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, start: 17745.741744, bitrate: N/A Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 31 tbr, 1000k tbn, 1000k tbc
以及
Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm': Metadata: creation_time : now Stream #0:0: Video: mpeg1video, none, 352x240, q=2-31, 256 kb/s, 30 fps, 15 tbc Metadata: encoder : Lavc56.26.100 mpeg1video Stream #0:1: Video: msmpeg4v3 (msmpeg4), none, 352x240, q=2-31, 256 kb/s, 31 fps, 15 tbc Metadata: encoder : Lavc56.26.100 msmpeg4 Stream mapping: Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg1video (native)) Stream #0:0 -> #0:1 (mjpeg (native) -> msmpeg4v3 (msmpeg4))
這兩塊,檢查差異,同時調整/etc/ffserver.conf里的配置項,調整Stream編碼和輸入編碼一致,我這里是mjpeg對應配置文件里的mpjpeg,改了就好了。
6.訪問
用播放工具打開http://192.168.0.x:8090/test1.mpg這個地址就可以了。
跑起來了其他的各位就慢慢研究吧。
參考0:https://www.cnblogs.com/chay/p/10553787.html
參考1:https://blog.csdn.net/gaisylly/article/details/50625214
參考2:http://www.deb-multimedia.org/
參考3:https://blog.csdn.net/zong596568821xp/article/details/88540455
參考4:https://github.com/revmischa/rtsp-server(沒用過改天用用)
參考5:https://askubuntu.com/questions/644102/ffserver-ffmpeg-missing-audio-stream-which-is-needed