大家好,
我最近刚开始使用 MCEBuddy。
我正在尝试把我的部分视频库转成 x265 以节省空间。
有些转换后的视频码率比原文件低,体积大约小了 25%;而另一些视频的码率却比原文件高,体积反而大了约 25%。
有人知道为什么用同一个配置文件,有的视频码率变低而有的变高吗?或者知道如何避免这种情况吗?
大家好,
我最近刚开始使用 MCEBuddy。
我正在尝试把我的部分视频库转成 x265 以节省空间。
有些转换后的视频码率比原文件低,体积大约小了 25%;而另一些视频的码率却比原文件高,体积反而大了约 25%。
有人知道为什么用同一个配置文件,有的视频码率变低而有的变高吗?或者知道如何避免这种情况吗?
原始分辨率是否相同?x265 编码器采用从“高损耗”到“placebo 损耗”的滑动尺度,并不是通过“码率”来设定。
我同样在做 OTA 录制,并设有两个配置文件,一个用于高清录制,一个用于标清录制。对于高清录制,我可以把配置文件设得更“损耗”一些(比如 25 到 27),而标清录制则只能设在 20–25。
如果是事后转码,我会用 Handbrake,并选择类似的自定义配置文件。我用的也是 Handbrake 最近的 nightly 版本。
我还打算(某天)用 Custom Cuts 或 MCEBuddy 命令行重新处理那些不需要转码、只是“刷新”元数据的文件,因为 MCEBuddy 会把所有元数据嵌入 MKV 容器,而我有不少几年前的节目,当时元数据质量远不如现在——毕竟流媒体爆发,人人都在找内容可播。
不,我正在處理 SDTV、720 和 1080。
也許我應該建立多個設定檔,並根據解析度進行篩選。
問題是,品質較低的檔案反而比較大,而品質較高的檔案卻比較小。所以如果我讓 SD 檔案的壓縮率更低(如前述),問題會變得更嚴重。
我注意到 Handbrake 在 x265 中有一个码率设置(不知道是否可用)。
如果这是 FFMPEG 或 Handbrake 可用的参数,也许 @Goose 可以在 GUI 中公开它(或手动传递给转码引擎)。
防止对任何源媒体提高码率可能会有帮助,但我不知道是否能得知现有的平均码率,因为它是平均值,且编解码器是自适应的。
如果能夠限制位元率不要超過來源那就太好了。
如果這個選項能在圖形介面中開放,那會很有幫助。也許甚至可以進入設定檔手動加入該參數,不確定。
你可以根据输入媒体的码率设置两个(或更多)配置文件,然后通过命令行手动选择该配置文件(或者,如果文件位于特定目录,就只处理该配置文件,并将其拖放到“正确”的文件夹中,让 MCEBuddy 应用正确的配置文件)。
如果码率是一个元数据字段,MCEBuddy 无需对整个(大)文件进行扫描计算平均码率就能看到,那么我可以考虑把码率作为一个变量占位符,用于过滤、配置文件选择或文件名处理逻辑中。
然而,我并不希望 @Goose 不断往 MCEBuddy 里添加这些更适合通过批处理/脚本和命令行来解决的边缘功能。因为他每加一项,就得维护它,还得想办法把它整合进 UI,既不能把应用弄得选项泛滥,也不能最后为了几个人的一次性需求,在配置里埋一堆选项,还得写文档、提供支持。这是个平衡问题。
我明白,不过如果能防止文件变得更大,对很多人都会有好处。MCEBuddy 已经能读取文件码率,所以我觉得没必要额外增加元数据字段或其他特殊设置。
这么说吧,我大概建了 4 个基于码率的配置文件,想借此缓解这个问题。我知道专家设置窗口里有码率筛选器。
我的问题是:假设我有一个 10,000 kbps 的文件,同时设置了“大于 2,000”和“大于 6,000”两个条件,怎样才能让它只执行“大于 6,000 kbps”的那个转换任务,而不是两个都跑一遍?
要是能支持区间选择就好了。
只要能让它只跑一个转换任务/配置文件,我就能勉强绕过这个问题,让输出大小更可控,避免某些文件比原文件还大。虽然不完美,但足够应付。
谢谢帮忙。
如果我可以透過修改設定檔或其他方式讓 MCEBuddy 做到這一點那就太好了,但我一直試著避免手動撰寫腳本命令並排程工作,因為那樣就完全失去對我來說使用 MCEBuddy 的意義與需求了。
你可以使用文件重命名和转换后归档/删除功能,按码率从高到低的顺序处理文件。即先处理6K转码配置文件,再处理2K转码配置文件。如果6K转码配置文件成功,10K文件会被处理,随后该文件不再存在,2K转码配置文件便不会触发。
謝謝 Mike,這正是我在考慮的做法。基本上工作會被建立,但只有第一個會被處理。
我相信這樣應該完全沒問題。
遗憾的是,这并没有按预期工作。我可以确认文件已被移动到存档文件夹,但不知为何它仍使用两个不同的配置文件进行了两次转换。在事件记录中显示的原始文件确实是同一个文件。
你是否将同时处理的作业数量限制为仅一个?
如果你允许多个作业,它会启动第一个,然后继续下一个,而你需要它们是顺序执行的。
如果你使用硬件转码,这并没有真正的好处,因为两个(或更多)作业会竞争GPU资源,CPU也是如此,因为转码也可以针对多核使用进行优化。
是的,我確實有把它設為一。我會再確認並重新測試。
我真的看不出下一份工作是如何成功的。
也许是我运气不好,我不知道。
看起来程序会等到该文件的所有转换任务都完成后才移动它。它转换了三次,然后把它移到了归档文件夹。这是我能想到的唯一解释,否则它不应该在第一次之后还能转换。
還有一個「等到最後存取」參數。你有把它調到零嗎?還是你在檔案系統裡關閉了「更新最後存取」旗標?
你可能得把日誌或設定檔上傳給 @Goose 看看。那是個 FTP 站台,使用方法已經貼在論壇上了。
不,我沒有,但「等到最後存取」目前設定為一分鐘。
好的,我可能會那麼做。
我把延迟设置为5分钟。如果存在“差一”错误,也许可以再提高一点。
再次感謝你,Mike。我會試試更高的延遲。