mcebuddy 每次编码为何会剪掉前 10 秒?

嗨,

我已經移除了舊的 beta 版本並安裝了最新的 beta,但 MCEBuddy 仍然會剪掉每個轉檔檔案的前 10 秒。

我試著啟用「剪輯開頭」並設為 1 秒,但完全沒有差別,還是會在每支影片的開頭損失 10 秒。

另外,我已將廣告移除設為「無」,並停用「偵測並最佳化影片品質」,但日誌裡卻充滿 comskip 與 ffmpeg 的項目,顯示檔案正在被 remux 與掃描,似乎 MCEBuddy 忽略了這些已停用的選項?

我已附上日誌,希望有人能幫忙看看…

我正在使用 MCEBuddy 來自動化我舊的 HandBrake 流程,因此只需要一個 CC21 直接編碼,最大寬度 1280。

非常感謝

mcebuddy.conf (7.3 KB)
profiles.conf (102.4 KB)
300 Rise Of An Empire 2014 720p BRrip ac3 DiVERSiTY.avi-My HEVC MKV-2018-10-24T06-47-25.8936679 01-00.log (836.3 KB)
300.mkv-My HEVC MKV-2018-10-24T05-52-41.4468237 01-00.log (936.1 KB)

你的日志在 HandBrake 开始编码之前都显示正确的时长,但最终却少了 10 秒。命令行看起来没问题。我注意到你正在使用硬件编码(NVIDIA)。

我唯一能想到的是,显卡驱动可能因为损坏或无法处理而丢弃了最前面的 10 秒。

尝试关闭硬件编码,看看软件编码器是否仍有同样问题。你也可以尝试从配置文件的 handbrake-video 行中移除 --start-at duration:0,它可能因时间戳损坏而干扰转换。

@Goose

我沒有使用硬體編碼(畫質很差),請參考附上的設定截圖。

所以我會試著移除你提到的那個參數。

另外,你知道為什麼我的影片也會被分析嗎?我已經全部停用,但每個檔案還是會經過 slow remuxing / fast remuxing 等流程…

非常感謝

你说得对,抱歉。它使用的是软件 x265 编码器。我在你的日志里看到:

2018-10-24T06:49:35 MCEBuddy.AppWrapper.Handbrake → [06:49:35] sync: first pts audio 0x100 is 0
2018-10-24T06:49:35 MCEBuddy.AppWrapper.Handbrake → [06:49:35] sync: first pts video is 430

可能是视频损坏了。你可以尝试以下几件事:

  1. 从配置文件的 handbrake-video 行中移除 --start-at duration:0
  2. 改用 ffmpeg 而不是 handbrake(调整配置文件中的顺序)
  3. 下载 handbrake 的最新 nightly 版本,替换你 handbrake 文件夹中的文件(可能是 handbrake 的 x265 编码器无法处理该视频流的问题)

@Goose

影片並沒有損壞,因為 mcebuddy 對所有影片都會這樣做;我使用的是與 mcebuddy 中相同的 Handbrake 版本,但它並不會跳過前 10 秒。我比較傾向繼續使用 Handbrake,但也願意試試 ffmpeg;不過我會先移除那個參數再回報 :slight_smile:

再次感謝!

@Goose

切换到 ffmpeg 已经解决了问题……但画质似乎不如 HandBrake?也许是我多心了?我的 CC21 设置和 HandBrake 一样。

我懷疑是初始視訊影格的時間戳記可能損毀了,這就是為什麼 Handbrake 會跳過前 10 秒。

Handbrake 與 ffmpeg 使用相似的函式庫(事實上,下一版的 Handbrake 將使用與 ffmpeg 相同的函式庫)。如果你熟悉 ffmpeg,可以調整其使用的設定檔與濾鏡。

你也可以試著調整轉換任務的品質滑桿,試著提高品質,這應該也會有幫助。

非常感谢 @Goose,你认为手刹问题会被修复吗?

您可以從 HandBrake 的官方網站下載每夜建構的 CLI 版本,並用它取代 MCEBuddy 內建的版本,看看是否能解決問題。

@Goose

我已經將 CLI 替換為最新的 nightly 版本(HandBrakeCLI-20181023173755-177c1e3-master-win-x86_64)

仍然會剪掉每支影片的前 10 秒嗎?

我建立了一個簡短的測試檔案,使用 HandBrake 獨立應用程式可以完整編碼,並附上我的設定檔與這支短片的日誌,還有其他想法嗎?

非常感謝

The Ant Bully (2006)5.mkv-My HEVC MKV-2018-10-26T15-21-18.1262191 01-00.log(488.6 KB)
mcebuddy.conf(7.9 KB)
profiles.conf(102.5 KB)

來源影片的時間戳記在開頭處已損毀。從你的日誌來看,就連 Comskip 也無法處理錄影開頭的時間戳記問題。

2018-10-26T15:22:06 MCEBuddy.AppWrapper.CCExtractor → Found large gap(684) in PTS! Trying to recover …
2018-10-26T15:22:06 MCEBuddy.AppWrapper.CCExtractor → 3% | 00:00
2018-10-26T15:22:06 MCEBuddy.AppWrapper.CCExtractor → Found large gap(691) in PTS! Trying to recover …
2018-10-26T15:22:06 MCEBuddy.AppWrapper.CCExtractor → Found large gap(689) in PTS! Trying to recover …
2018-10-26T15:22:06 MCEBuddy.AppWrapper.CCExtractor → Found large gap(686) in PTS! Trying to recover …

你可能需要檢查錄影來源(如果是調諧器,可能是韌體或驅動程式的問題,也可能是傳輸本身的問題)。

Handbrake 無法補償時間戳記錯誤,因此會跳過;看起來 ffmpeg 能夠修復,所以如果無法修復來源,最好的選擇就是使用 ffmpeg。

@Goose

抱歉,我真的不懂這是怎麼回事?

我已經測試過藍光轉檔、DVD 轉檔、電視錄影以及下載的檔案,結果都是前 10 秒(整整 10 秒)被砍掉;如果我用 HandBrake(Windows 10)去轉這些檔案,卻都能正常完成。我實在無法理解,這些來源完全不同的檔案,怎麼會剛好都在前 10 秒出現同樣的損壞?

无论用于创建 MKV 文件的是什么程序(看起来像是网络抓取器或网络编码器),在生成时间戳时都会出现问题。这是我从你的 MKV 文件中看到的:

matroska,webm

MCEBuddy 会将 MKV 重新封装为 TS,以便后续处理,因为并非所有底层程序都支持其他格式。可能是 HandBrake 在读取 TS 文件时遇到了问题,而不是 MKV 文件。

如果你不想先把 MKV 重新封装成 TS,可以在“转换任务 → 专家设置”页面勾选 Skip remuxing 选项:

image

这样原始 MKV 会直接传给 HandBrake,虽然可能暂时可用,但并未解决根本原因。

@Goose

我已經試著跳過檔案的 remuxing,這解決了我所有的問題!不再剪掉前 10 秒,而且也能立即開始編碼,無需任何處理!非常感謝!!

我並沒有使用任何特定程式來產生要編碼的檔案,所以我不明白問題出在哪裡。

來源包括:

所以是各式各樣的軟體把檔案餵給 mcebuddy,我實在看不出所有影片怎麼會都出現同樣的損毀或問題,導致前 10 秒被剪掉;而這些完全相同的影片檔在 HandBrake(Windows 10)裡都能正常編碼,我也試了 Staxrip 來編碼成 X265,同樣沒有任何問題……問題肯定出在 mcebuddy 裡,但我就是找不到!

到目前為止非常感謝你的協助,我相信一定會有比我聰明得多的人找出這個問題!:slight_smile:

至少透過「跳過檔案 remuxing」可以保住那 10 秒!:slight_smile:

我想知道你是否找到了解決這個問題的方法。我已經移除了 mcebuddy.conf 中所有 -ss 的設定,並在 profiles.conf 中建立了自己的設定檔,完全移除了 --start-at duration 的設定。

我完全沒有進行廣告移除,但 MCE 仍然會從所有影片的開頭移除 3 秒鐘,不論來源為何。

當我使用另一個應用程式(使用 HandBrake)來編碼這些相同的檔案時,並不會移除前 3 秒鐘。

你有什麼想法嗎?

尝试了很多更改后,最终取消勾选“skip remux”解决了这个问题。

谢谢

只要使用最新版本的 mcebuddy,它不會剪掉任何「開頭」的秒數。

我正在试用2.5版本第2版,准备购买完整版。这是最新版本吗?

感谢回复!

是的,這是公開發行的最新版本;BETA版本則屬於進階存取方案的一部分。

謝啦,Goose。我用的已經是最新版本了,但它還是會把開頭的 3 秒影片剪掉。