題 ffmpeg支持tx3g


我正在嘗試使用ffmpeg在MP4對手中嵌入字幕。

我使用以下命令:

ffmpeg -i input.MOV -i input.srt -map 0 -map 1 -c copy -c:s mov_text output.MOV

我想將字幕編碼為tx3g,而不是與我的Video Streamer(Wowza)兼容的文本。

有什麼辦法嗎? 更改字幕編碼器

謝謝!


2
2018-02-11 16:24


起源


據我所知,標準MOV不支持任何其他字幕編解碼器。您當然可以使用任何其他編碼器,但它可能不起作用。 - slhck
我對輸出類型很靈活,如果可以的話,它可以是mp4或m4v。可以? - Yuval Cohen
MP4(m4v只是另一個擴展)與MOV大致相同 - 實際上它大量建立在MOV上,並支持相同的視頻/音頻/字幕格式。您可以使用除FFmpeg之外的工具強制使用另一個字幕編解碼器,例如MP4Box,但我不確定,因為我以前從未嘗試過。稍後我會調查一下。 - slhck


答案:


我不得不承認我不知道FourCC是什麼 tx3g 真的代表著。 FFmpeg編解碼器 mov_text 和 tx3g 是一回事: MPEG-4第17部分 (定時文本)。

FFmpeg唯一不支持的是它嵌入的文本的自定義樣式。如果你查看源代碼,你會發現它們 應用默認樣式

現在,我們將使用固定的默認樣式。當我們添加樣式支持時,這將從ASS樣式生成。

話雖如此,免費和跨平台 MP4Box 應該能夠按照您的要求將這些字幕添加到MP4文件中。即使有造型。如何將它們添加到文件中取決於它們首先如何編碼。 從它的文件

沒有文本流的官方文本表示。此外,該規範依賴於IsoMedia知識來進行大多數結構描述。為了幫助創作文本流,在GPAC中開發了一種XML格式,稱為TTXT用於定時文本 - 擴展使用的是 .ttxt

要創建TTXT文件,您可以執行以下操作:

找到SRT或SUB字幕文件,然後運行 MP4Box -ttxt file.srt。這將轉換TTXT格式的字幕。

然後MP4Box應該能夠將字幕流添加到現有的MP4文件中,如下所示:

MP4Box -add input.mp4 -add subtitles.ttxt output.mp4

將字幕文件轉換為TTXT非常重要。如果它們仍然是SUB或SRT編碼的,MP4Box將使用默認選項簡單地將它們排出:

導入SRT或SUB文件時,MP4Box將選擇默認佈局選項,使字幕顯示在視頻的底部。


3
2018-02-12 21:06





在MP4視頻上嵌入macOS和iOS兼容字幕的純ffmpeg方法是:

ffmpeg -i input.MOV -i input.srt -c copy -c:s mov_text -tag:s:s:0 tx3g output.mov

“-tag:s:s:0 tx3g”就可以了。


0
2018-01-21 01:35