[Rtsp]RTSP對實時攝像頭視訊流進行轉換(FFmpeg+FFserver)
阿新 • • 發佈:2019-02-11
1.一、問題描述
輸入資料為來自攝像頭的RTSP視訊流,然後利用FFmpeg將其輸出到FFserver監聽的服務(Feed)上,然後客戶端(vlc)可以播放FFserver廣播的經過轉換後的視訊流(Streams)。
通過FFserver的配置檔案來配置視訊流的轉換引數(幀大小,幀頻等)
2.二、實現方法
- 編輯FFserver配置檔案,參考官網配置檔案說明(ffserver.conf)
Port 8090 #繫結埠號 BindAddress 0.0.0.0 #繫結ip MaxHTTPConnections 2000 #最大HTTP連線數 MaxClients 1000 #最大客戶端連線數 MaxBandwidth 1000 #最大頻寬 CustomLog - #日誌檔案,“-”為直接列印 NoDaemon #預設全域性引數 <Feed feed1.ffm> #Feed:每一個輸入(攝像頭)建立一個Feed File /tmp/feed1.ffm #Feed快取檔案 FileMaxSize 200K #快取檔案最大值 ACL allow 127.0.0.1 #允許寫入Feed的ip </Feed> <Stream test.flv> #Stream:每一個廣播(轉換後的視訊流)的轉碼設定專案 Format flv #視訊流格式 Feed feed1.ffm #視訊流的種子來源 VideoFrameRate 40 #視訊幀頻 VideoBitRate 128 #視訊位元率 VideoSize 160x80 #視訊幀大小 AVOptionVideo flags +global_header AudioBitRate 24 #音訊位元率 AudioChannels 1 #音訊聲道 AudioSampleRate 44100 AVOptionAudio flags +global_header </Stream>
- 啟動FFserver,終端輸入命令:
ffserver -f ffserver.conf
- 啟動FFmpeg,終端輸入命令:
ffmpeg -i rtsp://192.168.1.111:8000/?videoCodecType=H.264 http://localhost:8090/feed1.ffm #-i:為輸入引數選項 #rtsp://192.168……:為輸入的RTSP視訊流 #http://localho……:為FFserver配置檔案中設定的Feed的監聽地址和埠
- 開啟客戶端(vlc)請求視訊流地址:開啟vlc–>File–>OpenNetwork–>URL中填寫 “http://localhost:8090/test.flv”–>Open (地址為FFserver配置檔案中Stream項的名字)