7

我有 UYVY422 格式的原始视频,我想将其转换为 YUV420p。我正在执行该命令()

ffmpeg -y -r 25.0 -f rawvideo -s 1920x1080 -pix_fmt uyvy422 -i input.avi -pix_fmt yuv420p -f avi -r 25 -s 1920x1080 output.avi 

我的输出视频似乎浮动(视频的右侧开始出现在左边缘,并且从左向右移动)

有没有人知道我做错了什么?我试图将输出视频设置为原始格式,但它不起作用...\

4

3 回答 3

10

ffmpeg -y -r 25.0 -f rawvideo -s 1920x1080 -pix_fmt uyvy422 -i input.avi -pix_fmt yuv420p -f avi -r 25 -s 1920x1080 output.avi

这里的问题是源是一个 AVI 文件。它可能包含原始 YUV 帧,但它不是原始 YUV 文件,它周围仍然有 AVI 标头等。您告诉它将其解析为原始 YUV 文件,这就是您看到滚动帧的原因。

我只需删除 -i 之前的所有选项,然后它应该可以正常工作:

ffmpeg -i input.avi -pix_fmt yuv420p -c:v rawvideo -an -s 1920x1080 -y output.avi
于 2015-04-25T13:11:55.447 回答
5

对于 ffmpeg,我认为您需要告诉它直接复制,否则它将尝试对输出进行编码。尝试添加-vcodec copy选项:

ffmpeg -y -r 25.0 -f rawvideo -s 1920x1080 -pix_fmt uyvy422 \
       -i input.avi **-vcodec copy** -pix_fmt yuv420p -f avi -r 25 \
       -s 1920x1080 output.avi
于 2012-08-29T07:17:32.713 回答
1

我刚刚做了从 yuv420p 到 yuv444p 的转换。我不是 100% 确定这将适用于你的情况,但它可能会。值得一试:

windows中的命令行:

ffmpeg.exe -y -pix_fmt yuv420p -s 1920x1080 -r 30 -i ldr_420.yuv -f rawvideo -pix_fmt yuv444p -s 1920x1080 -r 30 ldr_444.yuv

Linux 中的命令行: $./ffmpeg -y -pix_fmt yuv420p -s 1920x1080 -r 30 -i ldr_420.yuv -f rawvideo -pix_fmt yuv444p -s 1920x1080 -r 30 ldr_444.yuv

在您的情况下,请将输入和输出 -pix_fmt 替换为所需的格式。

于 2015-04-24T18:17:58.643 回答