我有一个h.264渐进式640x480视频。我正在尝试创建2个独立的视频文件,每个视频文件为640x240,并且仅包含奇数字段和偶数字段。 首先我将文件转换为隔行扫描,但现在我需要转换为2个文件。我如何根据yuv格式做到这一点?
一旦完成,我将分别对文件进行编码,然后将它们重新加入到单个隔行扫描文件中。
我该怎么做?
答案 0 :(得分:1)
从完整的渐进式视频开始,您可以一步完成。
ffmpeg -i in.mp4 -filter_complex "[0]il=l=d:c=d,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" -f rawvideo odd.yuv -map "[even]" -f rawvideo even.yuv
il滤镜采用奇数行并将其移至结果的上半部分,将偶数行移至底部。从那以后,结果被分成两部分,一部分复制到上半部分;另一半到下半部分。每个都输出到一个单独的YUV文件。
要反转效果,您可以输入两个YUV文件并使用相反模式的过滤器
ffmpeg -i odd.yuv -i even.yuv -filter_complex "[0][1]vstack,il=l=i:c=i" rejoined.mp4
(您必须为每个YUV文件手动设置输入流属性,例如-video_size 640x240 -pixel_format yuv420p -framerate 25 -i odd.yuv
)
任何时候都不会检测到任何流或正式标记为隔行扫描。这些只是在渐进流的交替行上执行的操作。