【问题标题】:FFmpeg conversion FROM UYVY422 TO YUV420P从 UYVY422 到 YUV420P 的 FFmpeg 转换
【发布时间】:2021-04-14 01:23:00
【问题描述】:

我有 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 

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

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

【问题讨论】:

    标签: video ffmpeg h.264 video-processing


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      对于 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
      

      【讨论】:

      • 不,它不起作用,我确实通过将视频划分为帧来转换它,而不是使用 Image Magick 将每一帧转换为 YUV420,然后将帧连接到输出视频中
      【解决方案3】:

      我刚刚进行了从 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 替换为所需的格式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-06
        • 2018-11-19
        • 2018-03-14
        • 1970-01-01
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多