我需要将无损 JPEG2000 视频转码为 FFV1。源视频是隔行扫描的,但使用由开放立方体每帧使用 1 个场。我成功保留了隔行扫描(大部分 - 见下文),但质量受到影响,因为输出显示清晰的隔行扫描线(“之字形”)。此图显示了我的意思(左侧为源,右侧为输出):
在 ffmpeg 输出上,我注意到 ffmpeg 报告的隔行扫描略有不同,但我不确定这是否重要。输入文件标记为(pc, top first)
,而输出为(pc, top coded first (swapped))
。
以下是完整内容:
输入视频
Stream #0:0: Video: jpeg2000, yuv422p10le(pc, top first), 720x288, lossless, SAR 8:15 DAR 4:3, 50 tbr, 50 tbn
输出视频
Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le(pc, top coded first (swapped)), 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 1k tbn
这是我的命令行:
ffmpeg -hide_banner -i $input \
-c:v ffv1 -level 3 -threads 8 -slices 16 -slicecrc 1 \
-color_range jpeg \
-g 1 -pix_fmt + \
-vf tinterlace=0 \
-c:a copy -map 0:v -map 0:a -y $output
我还尝试通过使用setfield=tff
and/or扩展我的过滤链来为 ffmpeg 提供一些线索setparams=field_mode=tff
,但没有任何效果。
问题 :
- 什么是“顶部编码优先(交换)”以及它与顶部字段优先有何不同?
- (最重要的是)有人可以建议一种正确编码这些视频而不产生隔行线的方法吗?
非常感谢。