在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 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了
這一次,編譯成功, 出現一大串字符, 大體以下:
4.安裝
可見直接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)
咱們嘗試在系統中找到這個庫:
由結果可見, 在咱們編譯後的/usr/local/ffmpeg/lib/中存在libavdevice.so.56, 咱們須要將這個庫連接寫到/etc/ld.so.conf中而後執行sudo ldconfig, 操做以下:
如今, 在linux上就安裝成功了這個工具,就能夠直接使用了。具體你安裝到那裏沒有明確的規定,可是你必定要注意這個工具的權限問題。