官網(wǎng) ffmpeg Documentation
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
ffmpeg -i [輸入文件名] [參數(shù)選項(xiàng)] -f [格式] [輸出文件]
參數(shù)選項(xiàng):
(1) -an: 去掉音頻
(2) -vn: 去掉視頻
(3) -acodec: 設(shè)定音頻的編碼器,未設(shè)定時(shí)則使用與輸入流相同的編解碼器。音頻解復(fù)用在一般后面加copy表示拷貝
(4) -vcodec: 設(shè)定視頻的編碼器,未設(shè)定時(shí)則使用與輸入流相同的編解碼器,視頻解復(fù)用一般后面加copy表示拷貝
(5) –f: 輸出格式(視頻轉(zhuǎn)碼)
(6) -bf: B幀數(shù)目控制
(7) -g: 關(guān)鍵幀間隔控制(視頻跳轉(zhuǎn)需要關(guān)鍵幀)
(8) -s: 設(shè)定畫面的寬和高轻庆,分辨率控制(352*278)
(9) -i: 設(shè)定輸入流
(10) -ss: 指定開始時(shí)間(0:0:05)
(11) -t: 指定持續(xù)時(shí)間(0:05)
(12) -b: 設(shè)定視頻流量癣猾,默認(rèn)是200Kbit/s
(13) -aspect: 設(shè)定畫面的比例
(14) -ar: 設(shè)定音頻采樣率
(15) -ac: 設(shè)定聲音的Channel數(shù)
(16) -r: 提取圖像頻率(用于視頻截圖)
(17) -c:v: 輸出視頻格式
(18) -c:a: 輸出音頻格式
(18) -y: 輸出時(shí)覆蓋輸出目錄已存在的同名文件
-vcoder 設(shè)定視頻的編碼器,未設(shè)定時(shí)則使用與輸入流相同的編解碼器
參考:視頻壓縮:I幀余爆、P幀煎谍、B幀
$ ffmpeg -i input.mp4 output.avi
1. -i 輸入文件路徑
2. 命令行最后是輸出文件路徑
$ ffmpeg -i input.avi -r 24 output.avi // 強(qiáng)制把輸出視頻文件幀率改為 24 fps:
-r 幀率
- 截圖命令:
截取一張352x240尺寸大小,格式為jpg的圖片
$ ffmpeg -i input_file -y -f image2 -t 0.001 -s 352x240 output.jpg
- 把視頻的前30幀轉(zhuǎn)換成一個(gè)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
- 多張截圖合并到一個(gè)文件里(2x3)每隔一千幀(秒數(shù)=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 //轉(zhuǎn)碼為碼流原始文件
ffmpeg -i test.mp4 -vcoder h264 -bf 0 -g 25 -s 352-278 -an -f m4v test.264 //轉(zhuǎn)碼為碼流原始文件
ffmpeg -i test.avi -vcoder mpeg4 -vtag xvid -qsame test_xvid.avi //轉(zhuǎn)碼為封裝文件 -bf B幀數(shù)目控制, -g 關(guān)鍵幀間隔控制, -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 開始時(shí)間, -t 持續(xù)時(shí)間
ffmpeg -i rtsp://hostname/test -vcoder copy out.avi
- 內(nèi)容反轉(zhuǎn)(reverse)
// 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