Преобразование FFMPEG из .mkv в .mp4 не удается для субтитров

Я относительно начинающий пользователь ffmpeg, который пытается преобразовать .mkv kill bill 2 в .mp4 для лучшего воспроизведения на idevices. Проблемы, которые у меня возникают, связаны с субтитрами (2-й поток), необходимыми для иностранного языка.

Пытаюсь ли я преобразовать файл и сопоставить второй поток субтитров с помощью этой команды (ffmpeg -i "S:KillBill2.mkv" -map 0:v:0 -map 0:a:0 -map 0:s:1 -c:s mov_text -vcodec copy -acodec eac3 -b:a 640k "W:VideosKillBill2.mp4") или попробуйте извлечь файл субтитров и повторно объединить, как показано ниже, я получаю точно такие же следующие ошибки.

ffmpeg -i "killbill.mp4" -i Vol2.srt -c copy -c:s mov_text killbill2.mp4
ffmpeg version 2020-12-27-git-bff6fbead8-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      56. 62.100 / 56. 62.100
  libavcodec     58.115.102 / 58.115.102
  libavformat    58. 65.100 / 58. 65.100
  libavdevice    58. 11.103 / 58. 11.103
  libavfilter     7. 94.100 /  7. 94.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'killbill2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.65.100
  Duration: 02:16:57.82, start: 0.000000, bitrate: 10634 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800, 9985 kb/s, SAR 1:1 DAR 12:5, 23.98 fps, 23.98 tbr, 16k tbn, 47.95 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
    Stream #0:1(eng): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
    Side data:
      audio service type: main
Input #1, srt, from 'Vol2.srt':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Subtitle: subrip
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 2, only the last option '-c:s mov_text' will be used.
[mp4 @ 0000012e48a2cd40] track 1: codec frame size is not set
Output #0, mp4, to 'killbill2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.65.100
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], q=2-31, 9985 kb/s, 23.98 fps, 23.98 tbr, 16k tbn, 16k tbc (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
    Stream #0:1(eng): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
    Side data:
      audio service type: main
    Stream #0:2: Subtitle: mov_text (tx3g / 0x67337874)
    Metadata:
      encoder         : Lavc58.115.102 mov_text
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
  Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
**[mp4 @ 0000012e48a2cd40] Application provided duration: 2832590000 / timestamp: 2832590000 is out of range for mov/mp4 format
[mp4 @ 0000012e48a2cd40] pts has no value
[mp4 @ 0000012e48a2cd40] Application provided duration: 2834399999 / timestamp: 2835490000 is out of range for mov/mp4 format
[mp4 @ 0000012e48a2cd40] pts has no value**

Конечным результатом является фильм, который выглядит и звучит нормально, но весь поток субтитров находится в начале фильма, а не в 47 минут, где он должен был быть!

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *