ora*_*nge 48 mp4 handbrake video-conversion matroska
我有大量 MKV 文件需要转换为 MP4,我选择的软件是 Handbrake。
我被困在哪些设置最适合转换。我想保持完整的质量。我是否只是使用原始设置进行转换而不更改任何内容,或者是否需要更改任何特定内容?
slh*_*hck 93
当您使用 Handbrake 从一种容器格式转换为另一种容器格式时(例如,在您的情况下是 MKV 到 MP4),Handbrake 将重新编码视频。另请参阅将启用视频直通的相应功能请求:
抱歉,没有计划添加视频直通。HandBrake 旨在成为视频转码器。它不是为了允许直通而设计的。
因此,无论何时您使用 Handbrake 更换容器,您的视频都会被重新编码,这意味着 a) 需要时间并且 b) 可能会导致质量损失。
由于无法直通,请问自己:我需要重新编码吗?如果您只想将容器从 MKV 更改为 MP4,通常不需要编码任何内容,只需更改视频周围的“环绕”即可。这不会降低质量,而且过程会快得多。
您可以使用FFmpeg轻松交换容器——您只需要告诉它复制视频和音频流:
ffmpeg -i input.mkv -c copy -map 0 output.mp4
Run Code Online (Sandbox Code Playgroud)
还有像MP4Box这样的工具也可以创建 MP4 容器——MKV与MKVtoolnix一样存在。
但是,有一个很大的警告:这只适用于目标 (MP4) 容器中支持音频和视频编解码器的情况,例如 H.264/H.265 和 AAC,但不适用于许多其他容器。另外,MP4 的字幕格式支持与 MKV 不同,而且实际上非常有限,因此该命令可能会失败。
如果此命令不起作用,并且您的输入对输出容器使用了错误的编解码器,则您可能需要重新编码. 在这种情况下,编解码器将适应输出容器。
要理解为什么这是必要的,了解视频编解码器和容器之间的区别很重要。这将帮助您了解为什么更改容器有效以及为什么容器 MP4 和 MKV 实际上与视频编解码器几乎没有关系。
在对已编码的视频进行编码时,您(通常)不能保持完整质量。这是因为原始文件已经通过丢弃信息进行了压缩,而如果再次压缩,则会引入代损失。
通常,您希望在视频尺寸发生变化时重新编码视频,或者您需要特定的比特率来将视频流压缩到其中,或者您的原始视频使用了由于某种原因而无法播放的编解码器。
因此,如果您将 MKV 视频加载到 Handbrake 中,并使用 Handbrake 使用的 H.264 编码器 x264 重新编码,将其存储在 MP4 容器中,无论如何您都会损失质量,除非您设置比特率或质量因素如此之高,以至于您(真的)看不到差异。但是,文件大小也会更大。
在理想的情况下,您将视频转换为未压缩的视频,这不会降低您的任何质量,但会为您提供十几个 GB 的文件,即使是几分钟的视频材料。
如果您真的必须重新编码,请确保不要设置平均比特率,而是选择Constant Rate Factor,这类似于“恒定质量”。就像 MP3 的“可变比特率”一样:它将确保将比特用于需要它们的视频部分,并在相同的文件大小下提高整体质量。
Sane CRF 值从 19 到 24,其中较低意味着“更好”。因此,您可以尝试使用 19 的速率因子。另外,确保设置“高”配置文件,这使编码器能够使用所有花里胡哨的功能并优化给定比特率的质量。

小智 5
这对我来说非常有效。下面是在 Windows 中将所有 .mkv 转换为 .mp4 文件的代码。
保存在名为 convert.bat 的文件中。
for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
185951 次 |
| 最近记录: |