损坏的文件和用于移除商业内容的 Max Chapter Markers?

我覺得我碰到了透過章節標記移除廣告的數量上限。我知道 VideoProc 限制我只能手動剪 10 段,而在看 MCEBuddy 處理同一集 ABC《20/20》時,面對這麼長一串標記(見下方),進度條會直接失控,最後產出毀損檔案。

有人遇過這種情況嗎?

範例:透過 PlayOn 從 Hulu 錄下的 ABC《20/20》愛達荷州謀殺案…

Menu #1
ID : 4
Format : Timed Text
Codec ID : text
Duration : 1 h 36 min
Language : English
Menu For : 1,2,3
00:00:00.000 : Video
00:00:08.070 : Advertisement
00:00:38.674 : Video
00:09:51.587 : Advertisement
00:11:24.311 : Video
00:18:54.642 : Advertisement
00:20:09.872 : Video
00:27:40.282 : Advertisement
00:29:12.332 : Video
00:36:20.368 : Advertisement
00:37:52.747 : Video
00:45:02.455 : Advertisement
00:46:34.631 : Video
00:55:09.302 : Advertisement
00:56:41.493 : Video
01:04:39.896 : Advertisement
01:06:12.290 : Video
01:14:39.655 : Advertisement
01:16:11.298 : Video
01:22:06.544 : Advertisement
01:23:37.999 : Video
01:29:50.394 : Advertisement
01:31:22.477 : Video

應用程式沒有限制。您可以附上您的日誌嗎?

Logs.zip (978.0 KB)

给你……

好的,它找到了全部11个片段并尝试剪切,但似乎原始录制文件已损坏,因此在剪切与合并过程中遇到问题:

2023-03-20T01:36:12 MCEBuddy.AppWrapper.FFmpeg → C:\Windows\Temp\working1\ABC 20_20 - s45e15 - Horror in Idaho The Student Murders_ConcatList.txt: 处理输入时发现无效数据

2023-03-20T01:36:28 MCEBuddy.AppWrapper.AVIDemux → [detectTs] 06:36:28-538 [TS Demuxer] 不是TS文件

2023-03-20T01:37:31 MCEBuddy.AppWrapper.FFmpegMediaInfo → [null @ 000001e09749a980] 应用程序向复用器提供了无效、非单调递增的dts,流0: 27 >= 27
2023-03-20T01:37:31 MCEBuddy.AppWrapper.FFmpegMediaInfo → [null @ 000001e09749a980] 应用程序向复用器提供了无效、非单调递增的dts,流0: 42 >= 42

能否上传你的原始录制文件,以便我们分析具体情况?

檔案資訊

「ABC 20_20 - s45e15 - Horror in Idaho The Student Murders.mp4」
已上傳至 FTP 的「Robfwtx-PlayOnIssue」資料夾

歷史記錄

我曾詢問 PlayOn,當他們完成程式並從 720p 升級到 1080p 時,發生了什麼變化,因為我在使用 MCEBuddy 處理時遇到了問題。他們告訴我程式完全重寫了,錯誤一定出在 MCEBuddy。

我真希望我有注意到日誌中的那則訊息。它看起來重複,我總是在看到結尾前就開始打瞌睡。

謝謝你。一旦你有了報告,我應該就能告訴 PlayOn,他們的程式確實有錯誤。

谢谢,我会看看。你不是唯一遇到这个问题的人。请使用这个变通方法,或者降级到 PlayOn 4.5 版本。他们在新重写中搞坏了某些东西,导致生成无效文件。有关详情,请参见此主题。我进一步分析完你的文件后会再回复。

正如我所怀疑的,PlayOn 新版本生成的 MP4 文件并不符合规范,因此当 ffmpeg 和 avidemux 尝试转码时就会崩溃。

我把它連同截圖一起送上去了,看看會有什麼結果。

我找到了關於 moov atom not found 的解決方法…

方法 3: 使用 FFmpeg 修復「moov atom not found」錯誤

你可以在 FFmpeg 平台上使用「faststart」命令來修復「moov atom not found」的問題,只需在電腦的命令提示字元(cmd)中執行即可。這個命令會將 moov atom 移動到影片檔案的開頭位置。

下載並安裝 FFmpeg 後,在 cmd 中輸入損壞影片檔案的路徑,然後加上使用 faststart 的命令列。

在 FFmpeg 中修復「moov atom not found」錯誤的命令列可能如下所示:

ffmpeg -i input_video_file.mp4 -vcodec copy -acodec copy -movflags faststart output_video_file.mp4

接著,檢查 MP4 影片檔案中的 moov 錯誤是否已修復。

MP4Box 修复了文件,但删除了所有程序信息和章节标记。

有什么办法可以挽救这些信息吗?

如果檔案或 atom 損毀,ffmpeg 很可能會捨棄所有資訊(因為它們是鏈結清單,只要其中一個損毀,整條鏈就會損毀),我想這就是你看到的狀況。等我有空時也會另外研究,但顯然 PlayOn 必須修正他們的編碼器。

我有一張工單正在處理。我有超過一千點積分,所以那傢伙應該會試著處理。從我讀到的所有關於這個錯誤的資料來看,它主要發生在檔案沒有正確關閉的時候。攝影機錄影經常會這樣,或者當記憶卡故障時,最後一點資料就會損毀。我知道怎麼半調子地修復檔案,但那表示我得手動進行剪輯。即使檔案修好了,Comskip 也看不出廣告段落。

我會讓大家隨時知道進度。我已經跟這問題纏鬥太久,是時候找出一些答案了。