Ronstang
(Ronald J Kienle)
2020 年6 月 15 日 21:20
1
我在综合讨论区发了个帖子,现在怀疑是不是硬件编码的问题。帖子的链接是HERE 。我的系统只做了以下改动:
几天前 Windows 8.1 更新到了新版 Nvidia 驱动,但并未产生直接影响
昨天我彻底卸载了 MCEBuddy 2.5.4,连同所有配置文件以及 NET Framework 4 和 3
我重新安装了 2.4.11,结果第一次在这台机器上启用了硬件加速,一部 2 小时的电影编码时间从原来的 4–6 小时缩短到不到 1 小时……但关键帧间隔却从原来的不到 1 秒变成了将近 9 秒
今天我又依次回退到 NET Framework 3,再升到 4,速度和关键帧间隔都没有变化
我完全不知道该怎么解决这个问题。关键帧间隔太大让我无法顺利剪辑部分文件,但我又非常喜欢这次巨大的速度提升。我一直用的是同一个配置文件“MKV 普通质量”,里面关键帧间隔设为 25,对应 30 FPS 视频大约 0.8–1 秒,可现在却变成了原来的 10 倍,实在搞不懂发生了什么。
如有任何帮助,提前感谢!
Goose
(Goose)
2020 年6 月 16 日 03:40
2
我建議下載最新的 BETA 版本,然後附上該版本的日誌。這樣我們可以先建立基準,看看發生了什麼事,再決定是否回退到任何舊版本。
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 17:25
3
我照你说的做了,安装了最新的 BETA 版,关键帧现在又正常了,但性能又变得惨不忍睹,编码时间超长。一个文件用了 4 小时 47 分钟,另一个 3 小时 36 分钟,还有一个 2 小时 18 分钟。重新装回 2.4.11 后,平均每部电影不到一小时,最长也就 1 小时 7 分钟……不过我在 36 小时里转了 41 部电影,关键帧间隔却是错的。我会附上昨晚用 2.5.5 转换的那三部日志。
4 小时 47 分钟
3 小时 36 分钟
2 小时 18 分钟
Goose
(Goose)
2020 年6 月 16 日 19:52
4
這些日誌很有幫助。MCEBuddy 新舊版本之間的差異在於,新版本現在可以同時使用 HandBrake 和 FFmpeg 搭配 NVidia 進行硬體轉碼。
HandBrake 與 FFmpeg 在相同設定檔中的設定略有不同,這在你的情況下似乎影響到了硬體編碼器,它無法處理 HandBrake 的視訊濾鏡。
解決方法很簡單,只要開啟你的設定檔,把順序從
order=handbrake,ffmpeg,mencoder
改成
order=ffmpeg,handbrake,mencoder
我認為這樣就能解決你的問題。
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 21:38
6
嗯,這也不是個好辦法,雖然比較好,但仍舊浪費時間與電力。我正在重新編碼同一部片,上次花了 4 小時 47 分鐘,日誌我已貼在原文裡。等你回覆的期間,我重裝了 2.4.11,日誌如下:
同一部片用 2.4.11 編碼只花了 33 分鐘
現在我又用 2.5.5 重跑同一部片,預估時間會是 2.4.11 的 4 倍以上,但比在你建議的設定檔修改前少了將近一半。
有沒有辦法直接在 2.4.11 裡修復關鍵影格間隔的問題?我已經重跑過之前編碼過的影片,就算有畫質差異我也看不出來,但速度快了 5 到 10 倍,所以要是新版這麼慢,我寧可不用。
Goose
(Goose)
2020 年6 月 16 日 21:40
7
能否附上更新后的配置文件日志,以便我们对比两者之间的差异?如果它们都使用 ffmpeg,那就不应该有区别。
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 21:43
8
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 21:44
9
我正在按照您要求更改的配置重新编码同一部电影,大约还需要2小时,完成后我会添加该日志
谢谢
Goose
(Goose)
2020 年6 月 16 日 21:48
10
你沒有更改 profiles.conf 檔案中的順序,所以不會有任何變化。
你需要在 MCEBuddy 安裝目錄的 config 資料夾中開啟 profiles.conf,找到你的設定檔(你使用的是 MKV Normal Quality ),然後將
order=handbrake,ffmpeg,mencoder
改為
order=ffmpeg,handbrake,mencoder
完成後儲存檔案(請注意這是系統管理資料夾,你可能需要先把檔案複製到桌面進行編輯,然後再放回去)。完成後重新執行轉換,速度就會和 2.4.11 一樣快。你使用的是較舊的硬體 GeForce GT 730,對於 HandBrake 濾鏡支援不佳,使用 ffmpeg 會有更好的表現。
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 22:47
11
我确实是按你说的做了,但还没用那些设置完成过任务,因为耗时是2.4.11的四倍多。我刚刚检查过配置文件,改动确实在里面。一个半小时后任务完成时我会把日志发上来。
Ronstang
(Ronald J Kienle)
2020 年6 月 16 日 23:16
13
好的,这是同一部电影的日志,我之前也上传过另外两个日志。这个是按照你要求对配置文件进行修改后的版本。预计总耗时约2小时25分钟,大约是2.5.5版本下载安装后耗时的一半,比2.4.11版本慢了约4.5倍。
My Bloody Valentine
Goose
(Goose)
2020 年6 月 16 日 23:21
14
非常有幫助。2.5.5 使用的是新版 ffmpeg,需要新的 nvidia 驅動程式。你的驅動程式太舊,因此會失敗並退回 handbrake:
2020-06-16T16:53:27 MCEBuddy.AppWrapper.FFmpeg → [h264_nvenc @ 000000cbe0959800] Driver does not support the required nvenc API version. Required: 9.0 Found: 8.1
2020-06-16T16:53:27 MCEBuddy.AppWrapper.FFmpeg → [h264_nvenc @ 000000cbe0959800] The minimum required Nvidia driver for nvenc is 418.81 or newer
2020-06-16T16:53:27 MCEBuddy.AppWrapper.FFmpeg → Error initializing output stream 0:0 – Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
所以你可以選擇更新驅動程式,或者把 2.4.11 的 ffmpeg 版本複製到 2.5.5 的 ffmpeg 資料夾,應該就能正常運作。不過理想上,最好還是更新你的驅動程式。
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 00:14
15
我现在正在 Nvidia 官网安装最新驱动,但如果确实是驱动的问题,那装完新显卡驱动后,是否应该先让 Handbrake 获得高优先级?……在 2.4.11 版本里,Handbrake 拥有优先级,在我的系统上跑得最快。
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 00:22
16
另外,為什麼當你回覆這個主題時我沒有收到電子郵件通知?我本來可以更快回覆你的。
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 00:27
17
新的 Nvidia 驱动让使用 ffmpeg 的编码时间回到了昨天的大约一小时,我正在压缩一部与之前不同的电影。你会建议优先尝试 Handbrake 而不是 ffmpeg 吗,就像 MCEBuddy 默认设置的那样?Handbrake 比 ffmpeg 更好吗?
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 01:55
18
唯一的問題是,我現在用的是 2.5.5,速度不錯,但我來這裡的原因並沒有解決……關鍵影格間隔仍然錯誤,將近 9 秒。
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 03:09
19
我今天早些时候在你发现我的速度问题之前,用 2.5.5 编码的三部电影都使用了软件编码,关键帧间隔是正确的……而我用硬件加速编码的每一个文件,关键帧间隔都错了,几乎是 9 秒。那我们该怎么修复?
我还注意到,用 mediainfo 分析文件时,显示参考帧是 1,而不是设置里的 3,所以有没有可能在使用硬件加速时,这些配置没有正确传递?
感谢你一直以来的帮助。
Ronstang
(Ronald J Kienle)
2020 年6 月 17 日 04:43
20
我把設定檔中的 keyframe interval 改成 2,最小值也設成 2,但下一次編碼的檔案 keyframe interval 完全沒有改變。
我們現在該怎麼辦?硬體編碼似乎自行其是,完全忽略設定檔。我檢查過所有硬體編碼的檔案,都只有 1 個參考幀,而設定檔明明指定 3 個;keyframe interval 更是比應有值長了 10 倍。
這讓產出的檔案根本無法使用,無論編碼速度多快都沒用。