我有许多不同长度、分辨率、音频格式、音频和图像质量的 MP4 MKV MOV 文件。我应该将它们转换为什么格式才能获得最佳播放性能且不损失质量?
我的研究((> 小时的) 浏览器历史记录)
为了避免 HDD 瓶颈,我使用了 RAMDisk,但有些文件太大。
PC Specs
- Dell OptiPlex GX280,最新 BIOS
- 英特尔奔腾 4 2.8GHz Northwood(32 位)
- 2.5 GB 内存
- 硬盘驱动器
- ST3200014A
- 2×WDC WD400BB-75FRA0
- 操作系统
- Lubuntu 14.10(保持更新,待替换)
- Windows 7 Ultimate(保持最新)
答案1
如果你不想损失质量,那么你唯一的选择就是保持视频原样,或者用无损视频/音频编解码器(例如 HuffYUV 视频 + PCM 音频,或视频的 ffv1)进行转换。当然,这会增加文件大小,并在正常情况下导致性能下降。
我说“正常”是因为如果你想进行非线性视频编辑,使用无损(或至少只有 I 帧)编解码器效率更高,这样你就可以访问任何帧的视频,而不必解码其他帧。但对于正常的视频播放来说,这不是问题。
您可能从 DVD 或蓝光光盘上截取或从互联网上下载的视频经过了高度压缩,它们只需要存储介质提供大约 500 kBit/s 到 2 MBit/s 的带宽。HDD 可以提供的带宽远不止这些。您真正的瓶颈是使用 12 年的 CPU,它必须及时解码所有视频信息。
如果您希望以较好的质量观看高清视频,请考虑升级到新系统。
您的最后一个选择(如果您可以牺牲质量)是将视频转换为更小的尺寸(例如从 1080p 到 720p)和/或选择对 CPU 要求较低的视频编解码器(例如从 H.264 到 MPEG-4 Part 2)。
答案2
尝试 64 位 Linux。或者可能只需一个 amd64 内核和一个 64 位静态 mplayer 二进制文件即可进行测试,而无需重新安装。
在 x86 / x86-64 上,以 64 位模式运行的代码效率显著提高,因为无需向后兼容古老的 x86 调用约定。对于多媒体而言,更重要的是,普通寄存器和 SSE (xmm) 寄存器的数量是原来的两倍。
如果你在实时播放普通视频时遇到问题,那么可能是你的视频硬件存在瓶颈。请检查
mplayer -vo null ...
如果您默认使用-vo vdpau
,那么这可能是您遇到问题的原因。vdpau 很新,但在最近的 Ubuntu/mplayer 中默认启用。 -vo xv
通常很好(即高效),-vo gl
值得尝试。
如果该 CPU 上有超线程,请使用mplayer -lavdopts threads=2
如果没有,你可以尝试
mplayer -lavdopts fast:skiploopfilter input.mp4
这看起来很糟糕,特别是对于低比特率视频,其中环路滤波器对 H.264 的影响更大。(解码后的图片在用作后续帧的参考之前会进行过滤。跳过这一步会导致错误累积。)
如果您在使用 YouTube 时遇到问题,但在本地播放时没有问题,那只是因为 Adobe 的二进制 blob 与 mplayer 相比太糟糕了。使用 google chrome 可以更好地支持 YouTube 上的 html5 视频,因此它将默认使用 chrome 解码的 html5,而不是 Adobe 的垃圾 flash 解码。