流媒體中ffmpeg 命令的使用

在linux系統中,使用到的有關流媒體音視頻流進行處理的ffmpeg 命令的經常使用的命令己命令對應的參數以下:記錄一下:html

1.分離視頻音頻流linux

ffmpeg -i input_file -vcodec copy -an output_file_video  //分離視頻流 ffmpeg -i input_file -acodec copy -vn output_file_audio  //分離音頻流

2.視頻解複用web

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264 ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

3.視頻轉碼windows

ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //轉碼爲碼流原始文件 ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //轉碼爲碼流原始文件 ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //轉碼爲封裝文件 //-bf B幀數目控制,-g 關鍵幀間隔控制,-s 分辨率控制

4.視頻封裝centos

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

5.視頻剪切ide

ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg        //提取圖片 ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切視頻 //-r 提取圖像的頻率,-ss 開始時間,-t 持續時間

6.視頻錄製工具

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

7.YUV序列播放post

ffplay -f rawvideo -video_size 1920x1080 input.yuv

8.YUV序列轉AVIui

ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

9.視頻合併spa

ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg

經常使用參數說明:

主要參數:
-i 設定輸入流
-f 設定輸出格式
-ss 開始時間
視頻參數:
-b 設定視頻流量,默認爲200Kbit/s
-r 設定幀速率,默認爲25
-s 設定畫面的寬與高
-aspect 設定畫面的比例
-vn 不處理視頻
-vcodec 設定視頻編解碼器,未設定時則使用與輸入流相同的編解碼器
音頻參數:
-ar 設定採樣率
-ac 設定聲音的Channel數
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器
-an 不處理音頻

最後對ffmpeg作一個簡單的介紹:
FFmpeg是一套能夠用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源計算機程序。採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視 頻的完整解決方案。它包含了很是先進的音頻/視頻編解碼庫libavcodec,爲了保證高可移植性和編解碼質量,libavcodec裏不少code都 是從頭開發的。-------摘自百度百科。

用通俗一點的描述就是,這個玩意是個程序,也是由某些大神開發出來的用於處理音視頻流的一個程序,開始是在linux系統上開發的,因此在linux系統上面使用很方便,可是在windows 和mac上也實現了,這個東西仍是很強大的,由於這個東西主要使用在linux系統上,下面說一下在linux系統上如何使用這個進行對音視頻流的處理:

1.ffmpeg下載地址: http://www.ffmpeg.org/download.html

2.解壓

這裏做者假設已經重命名爲ffmpeg.tar.bz2

3.解壓後進入ffmpeg的文件夾,查看readme, 能夠看到和正常的編譯安裝步驟無異configure && make && make install

 

ffmpeg編譯出錯

編 譯FFMPEG時,出現了 ffmpeg yasm not found, use –disable-yasm for a crippled build,是由於 FFMPEG爲了提升編譯速度,使用了彙編指令,若是系統中沒有yasm指令的話,就會出現上述的問題。
解決辦法是:
A 若是是Windows系統, 從網上下載一個 yasm.exe 並安裝在mingw/bin下面,從新編譯,就不會出現該錯誤了;
B 若是是Linux系統,則更簡單,直接在終端輸入 sudo apt-get install yasm (centos 輸入sudo yum install yasm),安裝好後,從新編譯就 OK了

 

這一次,編譯成功, 出現一大串字符, 大體以下:

Selection_007

4.安裝

 

Selection_008

可見直接make install會出現權限問題, 由於以前編譯時指定的文件夾是/usr/local/ffmpeg, 因此須要sudo權限

ok,安裝成功, 在命令行下試一下命令使用

這 時候出現ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory的錯誤.(部分高版本缺乏的是libavdevice.so.54)

咱們嘗試在系統中找到這個庫:

Selection_009

由結果可見, 在咱們編譯後的/usr/local/ffmpeg/lib/中存在libavdevice.so.56,  咱們須要將這個庫連接寫到/etc/ld.so.conf中而後執行sudo ldconfig, 操做以下:

如今, 在linux上就安裝成功了這個工具,就能夠直接使用了。具體你安裝到那裏沒有明確的規定,可是你必定要注意這個工具的權限問題。

相關文章
相關標籤/搜索