繁体   English   中英

使用 FFMPEG 从 MKV 转换为 MP4 时丢失视频

[英]Lost video when converting from MKV to MP4 with FFMPEG

我正在尝试提出一个强大的脚本来处理所有 MKV -> MP4 视频转换。

我发现的经典示例是ffmpeg -i input.mkv -codec copy output.mp4 这适用于大多数视频,但我发现视频 stream 会在某些视频中丢失。 使用-map 0没有帮助,我使用的示例只有一个视频 stream 和一个音频 stream。

如果我只复制音频编解码器,它似乎工作正常,但由于视频被重新编码,需要更长的时间。 为此,我使用ffmpeg -i input.mkv -c:a copy output.mp4 我可以将它用于某些视频,但不确定如何确定是否需要重新编码视频(因为我想尽可能避免它)。

这是我运行第一个命令并丢失视频时得到的 output:

% ffmpeg -i input.mkv -codec copy output.mp4

ffmpeg version N-103075-g4c694093be-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57.  2.100 / 57.  2.100
  libavcodec     59.  3.102 / 59.  3.102
  libavformat    59.  4.101 / 59.  4.101
  libavdevice    59.  0.100 / 59.  0.100
  libavfilter     8.  1.103 /  8.  1.103
  libswscale      6.  0.100 /  6.  0.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Input #0, matroska,webm, from 'input.mkv':
  Metadata:
    CREATION_TIME   :
    ENCODER         : Lavf55.12.0
  Duration: 00:59:15.97, start: 0.062000, bitrate: 1892 kb/s
  Stream #0:0: Video: hevc (Main), yuv420p(tv, bt709), 1912x1072 [SAR 1:1 DAR 239:134], 23.98 fps, 23.98 tbr, 1k tbn (default)
  Stream #0:1(eng): Audio: aac (LC), 48000 Hz, 5.1, fltp (default)
    Metadata:
      title           : Surround
      LANGUAGE        : eng
  Stream #0:2(eng): Subtitle: ass (default)
  Stream #0:3(eng): Subtitle: ass
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf59.4.101
  Stream #0:0: Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, bt709), 1912x1072 [SAR 1:1 DAR 239:134], q=2-31, 23.98 fps, 23.98 tbr, 16k tbn (default)
  Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp (default)
    Metadata:
      title           : Surround
      LANGUAGE        : eng
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=32634 fps=0.0 q=-1.0 size=  295424kB time=00:22:41.04 bitrate=1778.1kbits/s speed=2.72e+03x frame=63776 fps=63775 q=-1.0 size=  611840kB time=00:44:19.94 bitrate=1884.3kbits/s speed=2.66e+03frame=85256 fps=62686 q=-1.0 Lsize=  822207kB time=00:59:15.83 bitrate=1894.2kbits/s speed=2.61e+03x
video:736136kB audio:83404kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.325361%

你试过ffmpeg -i input.mkv -vcodec copy -acodec copy -scodec mov_text output.mp4吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM