1. encode yuv file
ffmpeg -s cif -vcodec mpeg4 -i paris.yuv paris.avi
-s 指定幀大小 cif 為 352x288,qcif 為 176x144,4cif 為 704x576
-vcodec 指定采用的編碼器
-i 指定輸入文件
2. output raw YUV420P file
ffmpeg -i paris.avi paris0.yuv
3. 將一段視頻輸出為圖片序列
ffmpeg -i 1.avi cat%d.png -vcode png
-vcodec mjpeg
-vcodec ppm
ffmpeg -i 1.avi cat%04d.jpg -vcodec mjpeg -ss 0:1:2 -t 0:0:1
將1.avi視頻 1分02秒 處開始,持續(xù)1秒長的視頻輸出為jpg的序列
ffmpeg -vcodec mjpeg -i 1.flv test%02d.jpg -ss 0:0:2 -t 0.001
-t 表示持續(xù)時間為0.001秒,這個命令相當(dāng)于截取開始2秒處的一幅jpeg的圖片
4. 多輸入單輸出
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
5. 單輸入多輸出
ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
-map file:stream_index 指定哪一個輸入流用于輸出流,順序?qū)?yīng)
6. DVD to mpeg4
ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp2 -ab 128 snatch.avi
壓制高品質(zhì)mp4的參考參數(shù):
'-mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -pass 1/2'
可以試試: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'
7. encode mpeg1/mpeg2
ffmpeg -i 1.avi -vcodec mpeg2video 2.mpg
注意mpeg2的codec為 mpeg2video
其他codec可以使用 ffmpeg -formats 查看
壓制高品質(zhì)mp1/mp2的參考參數(shù):
'-mbd rd -flags +trell -cmp 2 -subcmp 2 -g 100 -pass 1/2'
注意,加 '-g 100' 可能會使某些解碼器沒法解碼
可以試試: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'
8. encode flv
ffmpeg -i 1.avi -ab 56 -ar 22050 -b 500 -r 15 1.flv
9. X 屏幕錄像
FFmpeg can grab the X11 display.
ffmpeg -f x11grab -i :0.0 /tmp/out.mpg
0.0 is display.screen number of your X11 server, same as the DISPLAY environment variable.
ffmpeg -f x11grab -i :0.0+10,20 /tmp/out.mpg
0.0 is display.screen number of your X11 server, same as the DISPLAY environment variable.
10 is the x-offset and 20 the y-offset for the grabbing.
10. 音視頻采集
ffmpeg -f audio_device -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
Note that you must activate the right video source and channel before launching FFmpeg with
any TV viewer such as xawtv (http://bytesex.org/xawtv/) by Gerd Knorr. You also have to set
the audio recording levels correctly with a standard mixer.
11. 常用選項
-i filename 輸入文件
-f fmt 強(qiáng)迫采用格式fmt
-y 覆蓋輸出文件
-ss position 搜索到指定的時間處開始 [-]hh:mm:ss[.xxx]的格式也支持
-b bitrate 設(shè)置比特率,缺省200kb/s
-r fps 設(shè)置幀頻 缺省25
-s size 設(shè)置幀大小 格式為WXH 缺省160X128.下面的簡寫也可以直接使用:
sqcif 128X96 qcif 176X144 cif 352X288 4cif 704X576
-vcodec codec 強(qiáng)制使用codec編解碼方式。 如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝。
-sameq 使用同樣視頻質(zhì)量作為源(VBR)
-g gop_size 設(shè)置圖像組大小
-intra 僅適用幀內(nèi)編碼
-bf frames 使用frames B 幀,支持mpeg1,mpeg2,mpeg4
-ab bitrate 設(shè)置音頻碼率
-ar freq 設(shè)置音頻采樣率
-ac channels 設(shè)置通道 缺省為1
-an 不使能音頻紀(jì)錄
-acodec codec 使用codec編解碼
-benchmark 為基準(zhǔn)測試加入時間
-hex 傾倒每一個輸入包
12. mpayer 截圖:
mplayer -ss START_TIME -noframedrop -nosound -vo jpeg -frames N NAME_OF_VIDEO_FILE
獲取視頻時長(seconds):
mplayer -identify movie-filename -nosound -vc dummy -vo null | grep ID_LENGTH
13. 快速合并視頻文件:
mencoder -oac copy -ovc copy -idx -o output.avi video1.avi video2.avi video3.avi