編輯 MP4 檔案上的「媒體持續時間」元數據

編輯 MP4 檔案上的「媒體持續時間」元數據

我有一些視訊檔案已轉換為 MP4,但不完全正確。當我使用 exiftool 檢查元資料時,我看到以下元資料值:

Duration                        : 0:11:23
Track Duration                  : 0:11:23
Media Duration                  : 0:04:13

最後一項是不正確的。在 VLC 媒體播放器中,影片播放得很好,但我用來在網路應用程式中播放影片的工具 (Flowplayer) 會認真對待「媒體持續時間」值並截斷影片。

為了修復我嘗試過的元數據

exiftool -"Media Duration"="0:11:23" video_1.mp4

但我得到了

Warning: Sorry, Media is not writable
Nothing to do.

須藤沒有幫助。根據其手冊頁和網站、exif工具讀取和寫入 MP4 文件上的元數據,但“如果 ExifTool 檢測到文件格式存在重大問題,則不會重寫文件。”

我該如何修復這些文件?


編輯:我對 ffmpeg 或 mediainfo 沒有運氣。

答案1

我找到了解決方案。我沒有編輯元數據,而是使用 ffmpeg 重新編碼文件,這樣視訊和音訊內容就可以簡單地複製並包裝在新的、無錯誤的 MP4 容器中。這是命令:

ffmpeg -i video_1.mp4 -vcodec copy -acodec copy video_1_fixed.mp4

答案2

列出的 exiftool 命令不起作用有兩個原因。

首先,「媒體持續時間」不是標籤的名稱,而是描述。從ExifTool 常見問題#2

…預設情況下,它會列印所提取資訊的描述,而不是標籤名稱。 …。請注意,描述通常在單字之間包含空格,但標籤名稱從不包含空格。此外,標籤名稱始終是英文,無論-lang環境。若要列印標籤名稱而不是描述,請使用-s選項擷取資訊時

第二個問題是該MediaDuration標籤不是可寫入標籤(請參閱QuickTime 媒體標題標籤)。

相關內容