将 mkv 转换为 mp4 时出现 ffmpeg 错误

标签 ffmpeg mp4 mkv

我一直在使用 ffmpeg 将 mkv 转换为 mp4,以下是我使用的命令。

ffmpeg -i demo.mkv -vcodec libx264 -vprofile high -crf 28 -c:v h264 demo.mp4
但是现在当我尝试转换新的 mkv 文件时出现错误。我已经在网上进行了相当广泛的搜索,但到目前为止我还没有找到解决方案。
以下是屏幕输出,包括版本和库信息。
ffmpeg version N-101385-gb34d1de Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
  configuration: --enable-gpl --enable-nonfree --enable-libx264 --enable-libmp3lame --enable-libass
  libavutil      56. 66.100 / 56. 66.100
  libavcodec     58.128.100 / 58.128.100
  libavformat    58. 70.100 / 58. 70.100
  libavdevice    58. 12.100 / 58. 12.100
  libavfilter     7.107.100 /  7.107.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100      libpostproc    55.  8.100 / 55.  8.100
[av1 @ 0x2e66180] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 0x2e66180] Failed to get pixel format.
[av1 @ 0x2e66180] Missing Sequence Header.
    Last message repeated 122 times    [av1 @ 0x2e66180] video_get_buffer: image parameters invalid
[av1 @ 0x2e66180] get_buffer() failed
[av1 @ 0x2e66180] thread_get_buffer() failed
[av1 @ 0x2e66180] Failed to allocate space for current frame.
[av1 @ 0x2e66180] Get current frame error
[matroska,webm @ 0x2e62580] decoding for stream 0 failed
[matroska,webm @ 0x2e62580] Could not find codec parameters for stream 0 (Video: av1 (Main), none(tv, bt709), 1920x1072 [SAR 1:1 DAR 120:67]): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, matroska,webm, from 'demo.mkv':
  Metadata:
    COMPATIBLE_BRANDS: iso6av01mp41
    MAJOR_BRAND     : dash
    MINOR_VERSION   : 0
    ENCODER         : Lavf58.70.100
  Duration: 00:13:39.08, start: -0.007000, bitrate: 779 kb/s
  Stream #0:0: Video: av1 (Main), none(tv, bt709), 1920x1072 [SAR 1:1 DAR 12 0:67], 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      HANDLER_NAME    : ISO Media file produced by Google Inc.
      VENDOR_ID       : [0][0][0][0]
      DURATION        : 00:13:39.000000000
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      DURATION        : 00:13:39.081000000
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 0, only the last option '-c:v h264' will be used.
Stream mapping:
  Stream #0:0 -> #0:0 (av1 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (opus (native) -> aac (native))
Press [q] to stop, [?] for help
[av1 @ 0x2e6ad40] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 0x2e6ad40] Failed to get pixel format.
Error while decoding stream #0:0: Function not implemented
[av1 @ 0x2e6ad40] Missing Sequence Header.
Error while decoding stream #0:0: Invalid data found when processing input
... [the above two lines repeated dozens of times]
[av1 @ 0x2e6ad40] video_get_buffer: image parameters invalid
[av1 @ 0x2e6ad40] get_buffer() failed
[av1 @ 0x2e6ad40] thread_get_buffer() failed
[av1 @ 0x2e6ad40] Failed to allocate space for current frame.
[av1 @ 0x2e6ad40] Get current frame error
Error while decoding stream #0:0: Invalid argument
... [the above 6 lines repeated hundreds of times]
[av1 @ 0x2e6ad40] Failed to get reference frame.
Error while decoding stream #0:0: Invalid argument
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
[aac @ 0x2ed0f00] Qavg: 3268.314
[aac @ 0x2ed0f00] 2 frames left in the queue on closing
Conversion failed!
请注意,三个点 (...) 表示重复多次的省略行。任何帮助表示赞赏。

最佳答案

您的输入视频流使用 AV1编解码器,正如日志所说,

Your platform doesn't suppport hardware accelerated AV1 decoding.
您将需要一个支持 AV1 解码器的 ffmpeg 版本,例如 libdav1d .可在 https://johnvansickle.com/ffmpeg/

关于将 mkv 转换为 mp4 时出现 ffmpeg 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70828250/

相关文章:

batch-file - qBittorrent、FileBot、mkvmerge - 将所有视频文件重新混合到 *.mkv 并删除进程中的字幕

java - 使用库或算法压缩视频大小的最快方法

amazon-s3 - 是否建议在我的本地服务器上使用 FFMpeg 进行视频转换?

javascript - Node.js ffmpeg 从 2 个或更多 jpg 图像创建 mp4 视频

javascript - 我怎样才能以webm格式而不是mkv格式保存视频

c++ - 初始化用于使用 FFmpeg 混合 mkv 的输出文件

audio - 在输出中包含来自 FFmpeg 覆盖的音频

python - ffmpeg 子进程问题

image - 如何使用 ffmpeg 将封面图像添加到 MP4 文件?

c# - 用 C# 中的新音频覆盖 mp4/wmv 视频的音频内容