簡介


FFmpeg 的優點就是集各種工具為一身,Demuxer (多工解訊器 / 分離器)、Decoder (解碼器)、Filter (篩選器 / 濾鏡)、Encoder (編碼器)、Muxer (多工器 / 合成器),而且 FFmpeg 支援的輸入/輸出格式非常多,單一工具就可以解決大部分問題。使用方便,消耗資源低,執行效率高,支援格式種類多,大多數情況可以一次處裡完畢輸出成品,不需要建立暫存檔,節省時間與磁碟容量。


FFmpeg 是 CLI 介面,使用它必須會寫基本的 CMD / BAT:
  ‧ http://www.mobile01.com/topicdetail.php?f=300&t=3749946


選項說明


由於 FFmpe 功能太龐大了,所以只節錄一些常用選項的說明

常用選項功能說明:
- http://www.mobile01.com/topicdetail.php?f=510&t=4487488

常用過濾器與編碼氣說明:
- https://www.mobile01.com/topicdetail.php?f=510&t=5026848

如果需要更詳細的說明,請查詢官網 Documentation:
- http://www.ffmpeg.org/documentation.html

官方說明文件 - 「ffmpeg-all」 簡體中文翻譯:
- https://www.gitbook.com/book/xdsnet/other-doc-cn-ffmpeg/details


使用範例


這邊有一些 FFmpeg 的使用範例:
- http://www.mobile01.com/topicdetail.php?f=510&t=4487462

如果需要更詳細的說明可以參考官網 wiki:
- https://trac.ffmpeg.org/wiki


取得 FFmpeg


Source:
Official
GitHub

Windows Builds:
Zeranoe FFmpeg Builds
Automatic build script


FFmpeg 相關工具


FFmpeg GUI (圖形介面):
http://www.mobile01.com/topicdetail.php?f=510&t=4032374

-------------------------------------------------

由於 Mobile01 網站的問題
文章內容會被截斷或回溯到早期狀態
請至以下參考:
https://hackmd.io/@kd01/ffmpeg
好文幫頂一下.
很多轉檔程式, 骨子裏也就是FFmpeg而已.

其實CLI介面也沒多難, 很多FFmpeg的GUI front-end,
操作起來也沒多簡單...

主要是如果真的有心搞得清楚FFmpeg的所有功能, 跟參數要怎麼調.
那CLI介面根本不是問題啊.... 搞懂功能跟參數要困難太多了...
與失敗為伍者,天天靠盃都是別人的錯。 與成功為伍者,天天跟失敗切磋直到不再出錯。

kingdragon wrote:
Making Hardsub

由於某些播放設備不支援字幕
所以就必須重新編碼視訊,並使用字幕 Filter 掛載字幕
這樣字幕就會被烙印到畫面上,此即為 Hardsub

先把 input.ass 放在 工作目錄
用 ffmpeg 內的 libass 掛載字幕,並將視訊重新編碼

ffmpeg -i input.mkv -vf "subtitles='input.ass'" -c:v libx264 -c:a copy output.mkv



需要 fonts-conf,將它放到 ffmpeg 所在路徑中
... \ffmpeg_dir\fonts

fonts-conf 的用途是讓程式從系統中取用所需字型
所以系統必須要有安裝字幕用到的字型


請問我遇到這問題要如何處裡?

[Parsed_subtitles_0 @ 000000000038b360] No usable fontconfig configuration file found, using fallback.
wehtamwehtam wrote:
請問我遇到這問題要如...(恕刪)

你缺少 字型組態檔 ( fontconfig configuration file )
字型組態檔 提供一套自動選擇字型的機制
Libass 需要靠它去才能去取用系統安裝的字型

我不知道你 ffmpeg 的 fontconfig 是多少版本號碼
試試這個: fonts-conf.zip

檔案清單
/etc/fonts/fonts.conf
/etc/fonts/fonts.dtd
/etc/fonts/conf.d
ps. fonts.dtd 似乎不是必要的

解壓縮後,將 fonts 資料夾放在 ffmpg.exe 所在路徑即可

例如
[路徑]\ffmpeg.exe
[路徑]\fonts\fonts.conf
[路徑]\fonts\fonts.dtd
[路徑]\fonts\conf.d


然後,FFmpeg 的字幕 subtitle filter 只能指定檔名無法指定路徑
-vf "subtitles='input.ass'"

所以字幕要必須要放在放在工作目錄

--------------------------------------------

如果上面的 字型組態檔 與 fontconfig 不相容的話
先到編譯者網站看看他是使用哪個版號的 fontconfig
再到這邊下載所需版本自行編譯
http://www.freedesktop.org/software/fontconfig/release/

完成後複製以下檔案
fonts.conf
fonts.dtd
conf.d
大概是這樣...

其實好像直接修改 fonts.conf.in 就可以
但我不知道怎麼做

kingdragon wrote:
你缺少 字型組態檔 ...(恕刪)


感謝大大的教學
是我自己在耍笨....
我把位置放成如下

C:\ffmpeg\ffmpeg.exe
C:\ffmpeg\ffmpeg_dir\fonts\fonts.conf
C:\ffmpeg\ffmpeg_dir\fonts\fonts.dtd
C:\ffmpeg\ffmpeg_dir\fonts\conf.d

難怪一直失敗

-----------------------------
大大真的太專業了
很多東西真的好複雜 看不懂
推薦. 這篇文章

好的文章, 應該讓更多的人可以看到.
可以激盪出更多的火花
請問,
ffmpeg中 -c 的功能是什麼呢?
請大大解說,
麻煩了
l12757 wrote:
ffmpeg中 -c 的功能是什麼呢?

-vcodec 等同於 -c:v ,指定 視訊編碼器 或 編碼格式
-acodec 等同於 -c:a ,指定 音訊編碼器 或 編碼格式
例如使用 "-c:a aac" 會自動選擇預設的 AAC 編碼器輸出 AAC 音訊
而 -c:a libfdk_aac 則是強制指定用 fdk-aac 編碼器輸出 AAC 音訊
-c copy 或 -codec copy 會自動複製 tracks,視音訊字幕等等.....
-c:v copy 自動複製 視訊
-c:a copy 自動複製 音訊
如果要強制定 track 必須搭配 -map
https://trac.ffmpeg.org/wiki/How%20to%20use%20-map%20option

-f 則是用來指定輸出檔案格式,例如...
ffmpeg -i input.flac -c:a libfdk_aac -f rawaudio output.aac
ffmpeg -i input.flac -c:a libfdk_aac -f mpeg4 output.m4a
前者是直接輸出AAC,後者是把 AAC 封裝到 MPEG-4 內再輸出
-f 通常可以省略,ffmpeg 會自動依副檔名判斷
ffmpeg -i input.flac -c:a libfdk_aac output.aac
ffmpeg -i input.flac -c:a libfdk_aac output.m4a
修改了許多說明與範例
剩下的改日再補上......
請問有人知道這問題嗎?從上星期六開始就變這樣

關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!