FFmpeg 轉(zhuǎn)碼、合并、提取等指令

官方教程
筆記來源 https://www.bilibili.com/video/av40146374 評論區(qū)

  • 查看 ffmpeg 的幫助說明
ffmpeg -h
  • 播放媒體
ffplay video.mp4
ffplay music.mp3
  • 常用快捷鍵
    按鍵 QEsc: 退出媒體播放
    鍵盤方向鍵: 媒體播放的前進后退
    點擊鼠標右鍵: 拖動到該播放位置
    按鍵 F: 全屏
    按鍵 P空格鍵: 暫停
    按鍵 W: 切換顯示模式

  • 查看媒體參數(shù)信息

ffprobe video.mp4
  • 轉(zhuǎn)換格式(文件格式/封裝格式)
    (1)文件名可以是中英文,但不能有空格。
    (2)轉(zhuǎn)換格式
ffmpeg -i video.mp4 video_avi.avi
  • 改變編碼 上(編碼,音頻轉(zhuǎn)碼)
    (1)查看編解碼器
ffmpeg -codecs

(2)網(wǎng)站常用編碼
MP4封裝:H264視頻編碼+ACC音頻編碼
WebM封裝:VP8視頻編碼+Vorbis音頻編碼
OGG封裝:Theora視頻編碼+Vorbis音頻編碼

(3)無損編碼格式.flac轉(zhuǎn)換編碼

ffmpeg -i music_flac.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 music_flac_mp3.mp3

說明:
acodec:audio Coder Decoder 音頻編碼解碼器
libmp3lame: mp3解碼器
ar:audio rate: 音頻采樣率
44100: 設(shè)置音頻的采樣率44100。若不輸入,默認用原音頻的采樣率
ab: audio bit rate 音頻比特率
320k: 設(shè)置音頻的比特率。若不輸入,默認128K
ac: aduio channels 音頻聲道
2:聲道數(shù)
若不輸入,默認采用源音頻的聲道數(shù)

概括:設(shè)置格式的基本套路-先是指名屬性,然后跟著新的屬性值

查看結(jié)果屬性

ffprobe music_flac_mp3.mp3
  • 改變編碼 中(視頻壓制)
    (1)視頻轉(zhuǎn)碼
ffmpeg -i video.mp4 -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -ac 2 -b:a 128k video_avi.avi

說明:
-s 1920x1080: 縮放視頻新尺寸(size)
-pix_fmt yuv420p: pixel format, 用來設(shè)置視頻顏色空間。
參數(shù)查詢:

ffmpeg -pix_fmts

-vcodec libx264: video Coder Decoder,視頻編碼解碼器
-preset medium: 編碼器預(yù)設(shè)。
參數(shù):ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
-profile:v high:編碼器配置,與壓縮比有關(guān)。
實時通訊-baseline,流媒體-main,超清視頻-high
-level:v 4.1: 對編碼器設(shè)置的具體規(guī)范和限制,權(quán)衡壓縮比和畫質(zhì)。
-crf 23: 設(shè)置碼率控制模式。
constant rate factor-恒定速率因子模式。范圍051,默認23。數(shù)值越小,畫質(zhì)越高。一般在828做出選擇。
-r 30: 設(shè)置視頻幀率
-acodec aac: audio Coder Decoder-音頻編碼解碼器
-b:a 128k: 音頻比特率.大多數(shù)網(wǎng)站限制音頻比特率128k,129k
其他參考上一個教程

  • 改變編碼 下(碼率控制模式)
    ffmpeg支持的碼率控制模式:-qp -crf -b
    (1)
    -qp :constant quantizer, 恒定量化器模式
    無損壓縮的例子(快速編碼)
ffmpeg -i input -vcodec libx264 -preset ultrafast -qp 0 output.mkv

無損壓縮的例子(高壓縮比)

ffmpeg -i input -vcodec libx264 -preset veryslow -qp 0 output.mkv

(2)
-crf: constant rate factor,恒定速率因子模式
(3)
-b: bitrate,固定目標碼率模式。一般不建議使用

3種模式默認單遍編碼

VBR(Variable Bit Rate/動態(tài)比特率):

ffmpeg -i input -vcodec libx264 -preset veryslow output

ABR(Average Bit Rate/平均比特率):

ffmpeg -i input -vcodec libx264 -preset veryslow -b:v 3000k output

CBR(Constant Bit Rate/恒定比特率):

... -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k ...
  • 合并,提取音視頻
    (1)單獨提取視頻(不含音頻流)
ffmpeg -i video.mp4 -vcodec copy -an video_silent.mp4

(2)單獨提取音頻(不含視頻流)

ffmpeg -i video.mp4 -vn -acodec copy video_novideo.m4a

具備多個音頻流的,如
Stream #0:2[0x81]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream #0:3[0x82]:Audio:ac3,48000Hz,5.1,s16,384kb/s
Stream #0:4[0x80]:Audio:ac3,48000Hz,5.1,s16,448kb/s

針對性的單一的提取,例如提取第2條,用指令: -map 0:3
(3)合并音視頻

ffmpeg -i video_novideo.m4a -i video_silent.mp4 -c copy video_merge.mp4
  • 截取,連接音視頻
    (1)截取
ffmpeg -i music.mp3 -ss 00:00:30 -to 00:02:00 -acodec copy music_cutout.mp3

截取60秒

ffmpeg -i music.mp3 -ss 00:00:30 -t 60 -acodec copy music_cutout60s.mp3

-sseof : 從媒體末尾開始截取

ffmpeg -i in.mp4 -ss 00:01:00 -to 00:01:10 -c copy out.mp4
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy out.mp4
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy -copyts out.mp4

把-ss放到-i之前,啟用了關(guān)鍵幀技術(shù),加速操作。但截取的時間段不一定準確??捎米詈笠粭l指令,保留時間戳,保證時間準確。
(2)連接音視頻

ffmpeg -i "concat:01.mp4|02.mp4|03.mp4" -c copy out.mp4

不同格式的音視頻可以連接在一起,但不推薦不同格式連接在一起。
建議使用Avidemux軟件連接

  • 截圖,水印,動圖
    (1)截圖.
    截取第7秒第1幀的畫面
ffmpeg -i video.mp4 -ss 7 -vframes 1 video_image.jpg

(2)水印

ffmpeg -i video.mp4 -i qt.png -filter_complex "overlay=20:80" video_watermark.mp4

(3)截取動圖

ffmpeg -i video.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 video_gif.gif
  • 錄屏,直播
    (1)錄屏
windows: ffmpeg -f gdigrab -i desktop rec.mp4
ubuntu: sudo ffmpeg -f fbdev -framerate 10 -i /dev/fb0 rec.mp4

gdigrab: ffmpeg中的一個組件。
只捕獲視頻.若要錄屏,錄音,獲取攝像頭,麥克風,換組件,用OBS Studio軟件

(2)直播
ffmpeg -re i rec.mp4 按照網(wǎng)站要求編碼 -f flv "你的rtmp地址/你的直播碼"

When we share, everyone wins

樂于分享,共贏你好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容