我有一个包含以下视频流的媒体文件:
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709), 1440x1080 [SAR 1:1 DAR 4:3], 23.98 fps, 23.98 tbr, 1k tbn (default)
我正在尝试将帧大小扩展到 1920x1080 并使用 libx264 重新编码视频以创建蓝光兼容视频流。 我正在使用以下命令(来自此处的视频过滤器):
ffmpeg -i original.mkv -c:v libx264 -preset veryslow -tune animation -profile:v high -crf 16 -pix_fmt yuv420p -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1" -an h264.mkv
生成的视频流:
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
然后,我从三个单独的文件中复制视频、音频和字幕流以创建最终文件:
ffmpeg -i h264.mkv -i audio.mkv -i subs.mkv -map 0:v -map 1:a -map 2:s -c copy bluray.mkv
然后,我通过在 tsMuxer 中添加 Bluray.mkv 中的每个轨道来创建蓝光 ISO。 我启用了“连续插入 SPS/PPS”,并尝试了“不要更改 SEI 和 VUI 数据”以及“始终重建 SEI 和 VUI 数据”。 此过程成功,没有警告或错误。
生成的 ISO 可以在 VLC 和 IINA 中安装和播放,但是当将其刻录到 BD25 光盘并在 PS4 上播放时,视频是原始帧的混合,看起来像是帧的多个较小副本不正确的图像步幅和随机的绿色块,所有这些都大约每五秒更新一次。 所有音频和字幕轨道都可以正常播放。
如何确保此转换生成的视频流可以在蓝光播放器上正常播放?
我终于回到这个项目并找到了解决方案。 以下是我最终使用的 ffmpeg 的参数:
我相信
-x264opts bluray-compat=1
是关键。