官網 ffmpeg Documentation
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
ffmpeg -i [輸入檔名] [引數選項] -f [格式] [輸出檔案]
引數選項:
(1) -an: 去掉音訊
(2) -vn: 去掉視訊
(3) -acodec: 設定音訊的編碼器,未設定時則使用與輸入流相同的編解碼器。音訊解複用在一般後面加copy表示拷貝
(4) -vcodec: 設定視訊的編碼器,未設定時則使用與輸入流相同的編解碼器,視訊解複用一般後面加copy表示拷貝
(5) –f: 輸出格式(視訊轉碼)
(6) -bf: B幀數目控制
(7) -g: 關鍵幀間隔控制(視訊跳轉需要關鍵幀)
(8) -s: 設定畫面的寬和高,解析度控制(352*278)
(9) -i: 設定輸入流
(10) -ss: 指定開始時間(0:0:05)
(11) -t: 指定持續時間(0:05)
(12) -b: 設定視訊流量,預設是200Kbit/s
(13) -aspect: 設定畫面的比例
(14) -ar: 設定音訊取樣率
(15) -ac: 設定聲音的Channel數
(16) -r: 提取影像頻率(用於視訊截圖)
(17) -c:v: 輸出視訊格式
(18) -c:a: 輸出音訊格式
(18) -y: 輸出時覆蓋輸出目錄已存在的同名檔案
-vcoder 設定視訊的編碼器,未設定時則使用與輸入流相同的編解碼器
複製程式碼
參考:視訊壓縮:I幀、P幀、B幀
$ ffmpeg -i input.mp4 output.avi
1. -i 輸入檔案路徑
2. 命令列最後是輸出檔案路徑
複製程式碼
$ ffmpeg -i input.avi -r 24 output.avi // 強制把輸出視訊檔案幀率改為 24 fps:
-r 幀率
複製程式碼
- 截圖命令:
擷取一張352x240尺寸大小,格式為jpg的圖片
$ ffmpeg -i input_file -y -f image2 -t 0.001 -s 352x240 output.jpg
複製程式碼
- 把視訊的前30幀轉換成一個Animated Gif
ffmpeg -i input_file -vframes 30 -y -f gif output.gif
複製程式碼
ffmpeg -i input_file -y -f mjpeg -ss 8 -t 0.001 -s 320x240 output.jpg
複製程式碼
ffmpeg -i out.mp4 -f image2 -vf fps=fps=1 out%d.png
複製程式碼
ffmpeg -i out.mp4 -f image2 -vf fps=fps=1/20 out%d.png
複製程式碼
- 多張截圖合併到一個檔案裡(2x3)每隔一千幀(秒數=1000/fps25)即40s截一張圖
ffmpeg -i out.mp4 -frames 3 -vf "select=not(mod(n\,1000)),scale=320:240,tile=2x3" out.png
複製程式碼
ffmpeg -i out.mp4 -t 10 -pix_fmt rgb24 out.gif
複製程式碼
ffmpeg -ss 3 -t 5 -i input.mp4 -s 480*270 -f gif out.gif
複製程式碼
ffmpeg -i out.mp4 out%4d.png
複製程式碼
ffmpeg -f image2 -i out%4d.png -r 25 video.mp4
複製程式碼
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_time 20 -hls_list_size 0 -hls_wrap 0 output.m3u8
複製程式碼
ffmpeg -i input_file -vcodec copy -an output_file_video //分離視訊流
ffmpeg -i input_file -acodec copy -vn output_file_audio //分離音訊流
複製程式碼
ffmpeg -i test.mp4 -vcoder copy -an -f m4v test.264
ffmpeg -i test.avi -vcoder copy -an -f m4v test.264
複製程式碼
ffmpeg -i test.mp4 -vcoder h264 -s 352*278 -an -f m4v test.264 //轉碼為碼流原始檔案
ffmpeg -i test.mp4 -vcoder h264 -bf 0 -g 25 -s 352-278 -an -f m4v test.264 //轉碼為碼流原始檔案
ffmpeg -i test.avi -vcoder mpeg4 -vtag xvid -qsame test_xvid.avi //轉碼為封裝檔案 -bf B幀數目控制, -g 關鍵幀間隔控制, -s 解析度控制
複製程式碼
ffmpeg -i video_file -i audio_file -vcoder copy -acodec copy output_file
複製程式碼
ffmpeg -i test.avi -r 1 -f image2 image.jpeg //視訊截圖
ffmpeg -i input.avi -ss 0:1:30 -t 0:0:20 -vcoder copy -acoder copy output.avi //剪下視訊 -r 提取影像頻率, -ss 開始時間, -t 持續時間
複製程式碼
ffmpeg -i rtsp://hostname/test -vcoder copy out.avi
複製程式碼
// For video only
ffmpeg -i input-file.mp4 -vf reverse output.mp4
// For audio and video:
ffmpeg -i input-file.mp4 -vf reverse -af areverse output.mp4
複製程式碼