使用 ffmpeg 将 mp4 转码为 mp4 时无法将选项值“-1”解析为像素格式

使用 ffmpeg 将 mp4 转码为 mp4 时无法将选项值“-1”解析为像素格式

我试图调试一个问题,我的 mp4 文件无法上传到 youtube(出现“上传失败:无法处理文件”错误)。视频在 vlc 播放器中播放正常,并能够在 Vegas Pro 中加载(事实上,再次渲染它将修复上传问题)。使用 MediaInfo 检查元数据与来自同一来源的其他 mp4 文件相比没有显示任何异常(上传到 youtube 时运行良好)。在使用各种工具进行一些挖掘后,我发现一个问题,当我按照超级用户使用 ffmpeg 对原始 mp4 文件进行转码。由于这是我在原始 mp4 文件中发现的唯一问题,因此我认为这可能是上传失败的原因。现在我想修复它。

我使用的命令是ffmpeg -i scripts/1.mp4 -pix_fmt yuv420p -crf 18 scripts/good.mp4

输出为

ffmpeg -i scripts/1.mp4 -pix_fmt yuv420p -crf 18 scripts/good.mp4
ffmpeg version N-83577-g7e538c9 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --prefix=/home/________/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/tianyig/ffmpeg_build/include --extra-ldflags=-L/home/tianyig/ffmpeg_build/lib --bindir=/home/tianyig/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      55. 47.100 / 55. 47.100
  libavcodec     57. 80.101 / 57. 80.101
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 73.100 /  6. 73.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x25074a0] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 540x960, 950 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'scripts/1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.25.101
    copyright       : @Baidu.com
  Duration: 00:12:15.90, start: 0.089000, bitrate: 1027 kb/s
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), none, 540x960, 950 kb/s, 22.58 fps, 25 tbr, 16k tbn, 32k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 77 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[buffer @ 0x250e200] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x250e200] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0x262a4e0] Error applying options to the filter.
Error opening filters!

它抱怨 pix_fmt 的值为 -1,但显然我已经有一个-pix_fmt yuv420p作为命令的一部分,但它似乎没有被尊重。

知道如何修复它吗?

相关内容