ffmpeg指令解讀海康威視攝像頭


這里貼一個官網鏈接:http://ffmpeg.org/ffmpeg.html

一、ffmpeg  -re -rtsp_transport tcp -i "rtsp://admin:admin123@192.168.1.68:554/h264/ch1/main/av_stream"  -f flv "rtmp://192.168.1.10:1935/webcam/cam01"

先來解讀下一引號中的內容:

rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream

rtsp和rtmp:都是一種實時的流傳輸協議,為什么要做rtsp到remp的轉換的,我們知道監控攝像機獲取的視頻是 rtsp 流的格式。 只能在特用的軟件中播放,並且只能在相同的網絡下播放。用戶要求開發一個管理軟件根據業務需要來播放視頻。最終的目地是要把rtsp 流視頻 轉換為能在瀏覽器,手機等主流的播放渠道上能播放的視頻(rtmp,mp4,flv,m3u8等格式)。

①username: 用戶名。例如admin
②password: 密碼。例如admin123
③ip: 為設備IP。例如 192.168.1.68
④port: 端口號默認為554,若為默認可不填寫
⑤codec:有h264、MPEG-4、mpeg4這幾種
⑥channel: 通道號,起始為1。例如通道1,則為ch1
⑦subtype: 碼流類型,主碼流為main,輔碼流為sub

rtmp://192.168.1.10:1935/webcam/cam01

①rtmp是在TCP之上,默認使用端口1935。

 

二、ffmpeg  -re -rtsp_transport tcp -i %s -c:v libx264 -vf scale=600:-1 -f flv %s -loglevel fatal > /dev/null 2>&1 &

①%s處為流,如:rtsp://admin:admin123@192.168.1.68:554/h264/ch1/main/av_stream,這里是在代碼中直接拷貝出來的,方便使用。

②-re :以本地幀頻讀數據,主要用於模擬捕獲設備

③-rtsp_transport tcp: 強制使用tcp讀取rtsp流

④-i:輸入流

⑤-c:v :-vcodec和-codec:v都是一個意思,都是指定的流設置編碼器

⑥libx264:一種編碼器

⑦-vf:視頻過濾器

⑧-vf scale=600:-1 :在未知視頻分辨率的時候,-1的作用是保證縱橫比,視頻寬600。相關博客

⑨-f:官網中的解釋為,強制輸入或輸出文件格式。 通常會自動為輸入文件檢測格式,並從輸出文件的文件擴展名中猜測該格式,因此在大多數情況下不需要此選項。
⑩-f flv:FLASH VIDEO的簡稱
⑪-loglevel:字面意思,設置日志等級,fatal指的是指令的錯誤

⑫fatal > /dev/null 2>&1 :將錯誤輸入到空設備文件,也就是不輸出的意思,2表示的是標准錯誤(0標准輸入,1標准輸出),2>&1的意思就是講標准錯誤(error信息)重定向到標准輸出流。總的來說就是不報錯,就算報錯也只作為輸出,不影響后續執行。

 

三、ffmpeg  -re -rtsp_transport tcp -i %s -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 640x360 -q 10 %s -loglevel fatal > /dev/null 2>&1 &

①-vprofile:H.264有四種畫質級別baseline, extended, main, high,介紹鏈接

②-acodec:設置音頻編解碼器。

③aac:AAC(Advanced Audio Coding),中文名:高級音頻編碼

④-ar:設置音頻采樣頻率,44100hz。

⑤-strict -2:跟標准的嚴格性。

⑥-ac 1:1就是單聲道,2就是立體聲

⑦-s:尺寸

⑧-q 10 :質量為十張圖

 

shell 解釋:ps -ef | grep "rtmp://192.168.1.10:1935/webcam/cam01" | grep -v grep | awk '{print $2}'

①ps -ef :是用標准的格式顯示進程

②grep :查找字符串

③grep -v grep:為了去除包含grep的進程行 ,避免影響最終數據的正確性 。-v就是除了的意思

④awk '{print $2}':讀取打印信息中以空格為間隔的第二個字段。awk是一種處理文本文件的語言,是一個強大的文本分析工具。

這個指令的作用是查找對應ffmpeg指令的進程號,方便管理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM