跳轉到內容

FFMPEG 中級指南/MPEG

來自華夏公益教科書,開放的書籍,開放的世界

FFMPEG:編碼,解碼
全稱:Moving Picture Experts Group
網站:運動影像專家主頁
描述:MPEG 是最標準和最廣泛使用的格式之一。它以多種不同的迭代形式出現,並在整個電影行業中使用,從捕捉、儲存到交付。

運動影像專家組是電影行業中定義和實施影片標準的首要團體。自 1988 年以來一直在運營,塑造了整個行業的發展。

MPEG 可用於所有級別的使用,但瞭解不同的格式如何工作將有助於您決定哪種格式最適合您的需求。請通讀用途部分以幫助您決定哪些是適合您用途的最佳設定。

運動影像專家組的基本前提是,編碼由一些強大的機器完成,解碼將由許多較弱的系統完成。因此,根據您使用的設定,編碼可能會很耗處理器,但解碼應該相當輕量級。

FFMPEG 指南

[編輯 | 編輯原始碼]

MPEG1 是一種低位元率格式,設計用於在 CD 上以小於 1.5 Mb/s 的速率執行。與 MPEG2 相比,MPEG1 在較低的位元率下通常會勝過 MPEG2,儘管 MPEG4 應該會勝過 MPEG1。

雖然有一個解碼器,但沒有用於 MPEG 1 音訊的音訊編碼器。對於音訊,只需使用 MPEG 2 (mp2) 音訊,因為它將與大多數高階編碼器配合使用。


對於單遍 mpeg1

ffmpeg -i "input_file" -vcodec mpeg1video -acodec mp2 "output_file.mpeg"


對於兩遍 mpeg1 編碼

ffmpeg -i "input_video" -pass 1 -f mpeg1video -an -passlogfile log_file "output_file.mpeg"
ffmpeg -i "input_video" -pass 2 -f mpeg1video -acodec mp2 -passlogfile log_file "output_file.mpeg"


對於最佳化的兩遍 mpeg1 編碼

ffmpeg -i "input_video" -pass 1 -f mpeg1video -b 750000 -s 320x240 -an -passlogfile log_file "output_file.mpeg"
ffmpeg -i "input_video" -pass 2 -f mpeg1video -b 750000 -s 320x240 -acodec mp2 -ab 128000 -passlogfile log_file "output_file.mpeg"

SD 正常質量

ffmpeg -i "input_video" -c:v mpeg2video -b:v 4M -refs 1 -bf 0 -c:a ac3 -b:a 192k -async 1 "output.mpg"


SD 高質量

ffmpeg -i "input_video" -c:v mpeg2video -b:v 8M -refs 1 -bf 0 -c:a ac3 -b:a 384k -async 1 "output.mpg"

SD 流

ffmpeg -i "input_video" -c:v mpeg2video -b:v 8M -refs 1 -bf 0 -c:a ac3 -b:a 192k -async 1 "output.ts"

HD 流

ffmpeg -i "input_video" -c:v mpeg2video -b:v 20M -refs 1 -bf 0 -c:a ac3 -b:a 384k -async 1 "output.ts"
  1. ffmpeg -i source.avi -f psp -r 29.97 -b 768k -ar 24000 -ab 64k -s 320×240 destination.mp4
  1. ffmpeg -v 0 -i in.flv -y -acodec libfaac -ar 22050 -ab 64k -r 25 -vb 384000 -f mp4 -vcodec mpeg4 out.mp4
  1. ffmpeg -i source.mp4 -s 176×144 -vcodec h263 -r 25 -b 12200 -ab 12200 -ac 1 -ar 8000 destination.3gp

SD MPEG4 第 2 部分

[編輯 | 編輯原始碼]

ffmpeg -i "input_video" -c:v mpeg4 -q:v 3 -c:a mp3 -ab 128k -async 1 "output.mp4"

ffmpeg -i "input_video" -c:v mpeg4 -b:v 2000k -c:a mp3 -ab 128k -async 1 "output.mp4"

SD MPEG4 XviD/DivX

[編輯 | 編輯原始碼]

ffmpeg -i "input_video" -c:v libxvid -q:v 3 -c:a mp3 -ab 128k -async 1 "output.mp4"

ffmpeg -i "input_video" -c:v libxvid -b:v 2000k -c:a mp3 -ab 128k -async 1 "output.mp4"

SD 基於質量的 H264

[編輯 | 編輯原始碼]

ffmpeg -i "input_video" -c:v h264 -crf 18 -preset slow -profile high -strict -1 -async 1 "output.mp4"

SD 固定位元率 H264

[編輯 | 編輯原始碼]

ffmpeg -i "input_video" -c:v h264 -b:v 2000k -preset slow -profile high -strict -1 -async 1 "output.mp4"

FFMPEG 主頁上提供了其他示例以及不同引數和編解碼器的詳細資訊。

通用交付

[編輯 | 編輯原始碼]

常見檔案型別:.mpg、.mp4、.ts、.mkv

VCD 和 SVCD

DVD-Video 是最常用的素材最終交付格式。本節僅討論標準 DVD-Video 作為交付格式。

一些有用的資訊需要了解。DVD 解碼器傾向於工作在約 8 Mb/s 的最大值和 1.5 Mb/s 的最小值之間(假設 MPEG2,MPEG1 可以更小,但我們建議您不要使用它)。固定位元率編碼速度更快,但可變位元率會提供更好的尺寸和可能的質量。請參閱有關可變位元率的部分。

對於較舊的 DVD 播放器,您不應超過 6 Mb/s,儘管經驗法則是,除非特別要求,否則 8 Mb/s 應該可以在 90% 的情況下正常工作,併為您的奶奶買一個新的 DVD 播放器。

固定位元率 DVD

[編輯 | 編輯原始碼]

最佳質量:8 Mb/s,55 分鐘影片

  • 1 小時:7350 Kb/s
  • 2 小時:4550 Kb/s

(這些是指導原則,您可能需要根據素材的長度進行調整。)

您應該避免低於 4500 kb/s,因為質量會變得很糟糕。

  • 最高質量:8 Mb/s
  • 中等質量:5 Mb/s – 7 Mb/s
  • 最低質量:5 Mb/s
  • 較差質量:4 Mb/s

最終編碼的內容必須適合 4.7 GB 單面 DVD 或 8.4 GB 雙面 DVD。

可變位元率 DVD

[編輯 | 編輯原始碼]

藍光和 HDDVD

[編輯 | 編輯原始碼]

25Mb/s - 60Mb/s

15Mb/s

長期高質量儲存

[編輯 | 編輯原始碼]

50 - 880Mb/s

流媒體

[編輯 | 編輯原始碼]

很難提供示例表格,因為許多來源根據影片解析度和伺服器頻寬來改變其位元率和質量。

隔行掃描素材

[編輯 | 編輯原始碼]

要將影片去隔行並將其轉換為逐行掃描,請新增 -deinterlace 選項(如果您知道它是隔行掃描的)。否則,為了安全起見,請使用 -vf yadif 選項。

還要注意,從隔行掃描轉換為逐行掃描會對您的影片內容造成破壞,並且可能會在轉換過程中導致質量損失或引入其他偽影。

[編輯 | 編輯原始碼]
華夏公益教科書