FFmpeg从UYVY422转换为YUV420P

ris*_*que 5 video ffmpeg video-processing h.264

我有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 
Run Code Online (Sandbox Code Playgroud)

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

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

Ron*_*tje 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
Run Code Online (Sandbox Code Playgroud)


Pau*_*i73 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
Run Code Online (Sandbox Code Playgroud)

  • 不,它不起作用,我确实通过将视频分成帧来转换它,然后使用 Image Magick 将每个帧转换为 YUV420,然后将帧连接到输出视频中 (2认同)