我有一个使用以下 ffmpeg 设置从无损 8bpc RGB mov 视频文件编码的 4K 60fps 3.46 GB 视频文件:
ffmpeg -i 8bpcRGB.mov -c:v prores_ks -profile:v 2 -bits_per_mb 540 -vendor apl0 -pix_fmt yuv422p10le "out.mov"
但是,当我尝试在 VLC 媒体播放器中播放这个 4K 60fps 3.46 GB “out.mov”文件时,我注意到播放卡顿,有时一次停止几秒钟。如果我改为使用以下方法对视频文件进行编码:
ffmpeg -i 8bpcRGB.mov -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 30M -minrate 30M -maxrate 30M -bufsize 2M -pix_fmt yuv420p "out.mp4
然后“out.mp4”在 VLC 中完美播放。很明显,“out.mov”口吃如此严重的原因与编解码器或文件大小或两者有关。我很好奇我的系统的硬件/软件方面对播放不佳负责;我对它可能是什么有一些想法:
- VLC 的优化不足以实时解码这个特定的 prores 编解码器(软件限制)。
- 视频文件所在的磁盘驱动器速度不够快,VLC 无法读取实时播放所需的数据(硬件限制)。
- 我的 CPU 速度不够快,无法实时执行解码(硬件限制)。
它是哪一个,还是完全是别的东西?你怎么看?
我有一个英特尔 i7 6820HK。该文件位于通过 USB 3.0 连接到计算机的 RAID 1 中的外部 WD MyBook Duo 上。但是,即使文件位于内部三星 951 SSD 上,我似乎也注意到了这个播放问题
这在 VLC 3.0.16 中的 Windows 10 上为我修复了它:
工具 -> 首选项 -> 视频 -> 将“输出”设置为“Windows 的 OpenGL 视频输出”
然后关闭 VLC 并再次启动它。
在那之后,我的 4K ProRes 播放在 VLC 中很流畅。
我不确定将其始终保留在 Open GL 渲染上是否有任何缺点,而不是默认的“自动”设置。