FFmpeg常用命令:
-
列出ffmpeg支持的所有格式:
ffmpeg -formats
-
截取一段視頻
ffmpeg -i input.mp4 -ss 10 -codec copy -t 10 output.mp4
將文件中第10s 剪切10秒的時間霹粥,輸出到output.mp4中伦腐,其中-ss指定偏移時間(可以用秒的格式赢底,也可以用00:00:10.0的格式)失都,-t指定的時長
提取視頻文件中的音頻文件
ffmpeg -i input.mp4 -vn -acodec copy output.m4a
-vn:取消視頻輸出
-acodec codec:指定音頻編碼(‘copy’代表不做音頻轉(zhuǎn)碼柏蘑,直接復(fù)制)
-
提取視頻文件中視頻(不保留音頻)
ffmpeg -i input.mp4 -an -vcodec copy output_no_audio.mp4
-an取消音頻輸出
-vcodec codec:指定視頻編碼(‘copy’代表不做視頻轉(zhuǎn)碼,直接復(fù)制)
-
從文件中提取視頻導(dǎo)出為裸h264數(shù)據(jù)
ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
-bsf:v h264_mp4toannexb視頻數(shù)據(jù)使用h264_mp4toannexb這個bitstream filter來轉(zhuǎn)換為原始的h264數(shù)據(jù)
-
提取視頻中的音頻并轉(zhuǎn)換為aac封裝格式
ffmpeg -i input.mp4 -vn -acodec aac output.aac
注:查看是否有aac編碼器可以使用命令:
ffmpeg -h encoder=aac
下面就不截圖了
音頻數(shù)據(jù)和視頻數(shù)據(jù)封裝程視頻文件
ffmpeg -i output.aac -i output.h264 -acodec copy -bsf:a aac_adtstoasc -vcodec copy -f mp4 merge.mp4從wav音頻文件中提取pcm裸數(shù)據(jù)
ffmpeg -i input.wav -f s16le output.pcmpcm裸數(shù)據(jù)封裝程wav
wav和pcm的區(qū)別就是 pcm是一段純音頻數(shù)據(jù) 未經(jīng)壓縮 而wav就是給pcm 加上一個文件頭 其中描述該段音頻的采樣率 聲道數(shù)等信息
ffmpeg -ar 44100 -f s16le -i output.pcm output.wav
- 視頻轉(zhuǎn)換成gif格式
ffmpeg -i input.mp4 -vf scale=300:-1 -t 5 -r 10 image.gif
-vf VideoFilter 使用VideoFilter的scaleFilter
-r 幀率改為10,
-t 只處理前5秒鐘的視頻
- 從視頻中抽取圖片
ffmpeg -i output.mp4 -r 0.25 frames_%04d.png
每4秒鐘截取一幀視頻畫面生成圖片
- 多張圖片生成gif
ffmpeg -i frames_%04d.png -r 5 output.gif
- 降低音量為原來的一半
ffmpeg -i output.wav -af volume=0.5 low_volume.wav
- 淡入效果器的使用
ffmpeg -i output.wav -filter_complex afade=t=in:ss=0:d=5 gradient.wav
前5s做淡入效果
- 淡出效果器的使用
ffmpeg -i output.wav -filter_complex afade=t=out:st=20:d=5 gradient_out.wav
從20s開始革半,做5s的淡出效果
- 對聲音進行變速但不變調(diào)效果器的使用
ffmpeg -i output.wav -filter_complex atempo=0.5 change_speed.wav
語速變?yōu)樵瓉淼?.5倍