我有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
我的输出视频似乎浮动(视频的右侧开始出现在左边缘,它从左向右移动)
有没有人知道我做错了什么?我试图将输出视频设置为原始格式,但它没有用...... \
答案 0 :(得分:8)
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
答案 1 :(得分:4)
使用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
答案 2 :(得分: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替换为所需的格式。