http://ffmpeg.org/ 官網ide
ffmpeg(命令行工具) 是一個快速的音視頻轉換工具。工具
1.分離視頻音頻流命令行
ffmpeg -i input_file -vcodec copy -an output_file_video //分離視頻流 ffmpeg -i input_file -acodec copy -vn output_file_audio //分離音頻流
2.視頻解複用3d
ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264 ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
3.視頻轉碼code
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.視頻封裝視頻
ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file
5.視頻剪切blog
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序列播放get
ffplay -f rawvideo -video_size 1920x1080 input.yuv
8.YUV序列轉AVIinput
ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi
經常使用參數說明:
主要參數:
-i 設定輸入流
-f 設定輸出格式
-ss 開始時間
視頻參數:
-b 設定視頻流量,默認爲200Kbit/s
-r 設定幀速率,默認爲25
-s 設定畫面的寬與高
-aspect 設定畫面的比例
-vn 不處理視頻
-vcodec 設定視頻編解碼器,未設定時則使用與輸入流相同的編解碼器
音頻參數:
-ar 設定採樣率
-ac 設定聲音的Channel數
-acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器
-an 不處理音頻
我的使用的問題
若是合併兩個視頻 須要這兩個視頻有一樣的視頻寬高比,是否都有音頻,幀率一致(待確認)。例如想要將一個非1280*720的視頻和一個1280*720的視頻合併.首先利用以下代碼將其轉換爲正確的size
ffmpeg -i video.mp4 -aspect 16:9 -s 1280x720 -vf scale=w='if(gt(a,16/9),1280,trunc(720*a/2)*2)':h='if(lt(a,16/9),720,trunc(1280/a/2)*2)',pad=w=1280:h=720:x='if(gt(a,16/9),0,(1280-iw)/2)':y='if(lt(a,16/9),0,(720-ih)/2)':color=black -t 60 -ss 0 target.mp4