2020.10.31更新
python調(diào)用ffmpeg 使用ffmpy3
鏈接https://ffmpy3.readthedocs.io/en/latest/examples.html
pip install ffmpy3
2020.10.30更新
將ffmpeg加入到環(huán)境變量
2020.10.28更新
添加了FFMPEG解碼MP4幀數(shù)不對(duì)問題
添加了獲取視頻總幀數(shù)的指令
0.添加環(huán)境變量
將ffmpeg解壓后的\bin目錄加入到系統(tǒng)變量的Path中(路徑盡量不要出現(xiàn)奇怪的字符,由數(shù)字字母下劃線組成)
1.查看視頻屬性
ffmpeg -i input.mp4
1.1獲取視頻總幀數(shù)
ffprobe -v error -count_frames -select_streams v:0 -show_entries \
stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 input.mp4
2.裁剪視頻
2.1裁剪尺寸
crop=w:h:x:y
w、h輸出視頻寬高,x、y視頻中某點(diǎn)向右下裁剪(默認(rèn)居中)
ffmpeg -i input.mp4 -vf crop=256:256:0:0 out.mp4
2.2裁剪時(shí)間
ffmpeg -i input.mp4 -ss 00:00:00 -t 5 out.mp4
-ss 起始時(shí)間
-t 持續(xù)時(shí)間
2.3裁剪幀數(shù)(YUV)
ffmpeg -s 64x64 -i input.yuv -vframes 30 out.yuv
-vframes 指定幀數(shù)
3.轉(zhuǎn)換視頻格式
3.1視頻封裝轉(zhuǎn)換
ffmpeg -i input.mp4 out.mkv
ffmpeg -i input.mp4 -c copy out.mkv
-c copy直接復(fù)制碼流
3.2視頻編碼格式轉(zhuǎn)換
ffmpeg -i input.mp4 -vcodec h264 out.mp4
ffmpeg -i input.mp4 -c:v libx265 out.mp4
-vcodec 指定編碼器
-c 指定編碼格式
-c:v 指定視頻編碼格式
3.3指定碼率&幀率轉(zhuǎn)換
ffmpeg -i input.mp4 -r 30 -b:v 125k out.mp4
-r 指定幀率
-b 控制碼率
-b:v 控制視頻碼率
4.視頻解碼為yuv文件
ffmpeg -i input.mp4 out.yuv
ffmpeg -i input.mp4 -pix_fmt yuv420p out.yuv
直接解碼產(chǎn)生的yuv可能比原封裝下的MP4幀數(shù)變多,通過-vsync參數(shù)控制
ffmpeg -i input.mp4 -vsync passthrough out.yuv
5.yuv文件編碼
ffmpeg -s 1280x720 -pix_fmt yuv420p -r 30 -i input.yuv -b:v 125k -r 30 -vcodec libx264 out.mkv
-s 指定yuv文件尺寸
-pix_fmt 指定yuv文件格式
-r 指定輸入yuv文件幀率
-b:v 指定視頻碼率
-r 指定輸出視頻幀率
-vcodec 指定編碼器