Как я могу объединить эти два видеофайла в разных форматах с помощью ffmpeg? - PullRequest
0 голосов
/ 11 июня 2018

Файл s.mp4 создан из фотографии и добавлена ​​тихая звуковая дорожка. Файл r.mp4 был создан с использованием встроенной видеозаписи на планшете Android.

Я хотел бы попробоватьсопоставьте s.mp4 с r.mp4, чтобы они могли объединиться (s затем r).В данный момент временная база отключена, и она воспроизводит звук с r.mp4, но никогда не показывает видео.Это всегда показывает видео с s.mp4.Я смог сопоставить ТБН из 90 КБ с помощью -video_track_timescale 90k, но я не знал, как сопоставить ТБК.Это 180K на одном и 59,94 на другом.

Зонд для s.mp4

./ffprobe s.mp4 
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 's.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.25.100
  Duration: 00:00:05.04, start: 0.000000, bitrate: 296 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 286 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Зонд для r.mp4

./ffprobe r.mp4 
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
  built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'r.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2018-06-11T20:12:03.000000Z
    com.android.version: 7.0
  Duration: 00:00:10.89, start: 0.000000, bitrate: 17087 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/smpte170m), 1920x1080, 16810 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2018-06-11T20:12:03.000000Z
      handler_name    : VideoHandle
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2018-06-11T20:12:03.000000Z
      handler_name    : SoundHandle

1 Ответ

0 голосов
/ 11 июня 2018

Используйте эту команду, чтобы сгенерировать s.mp4.

ffmpeg -framerate 30 -i image -f lavfi -i anullsrc
       -c:v libx264 -profile:v high -c:a aac
       -pix_fmt yuv420p -ac 2 -ar 48000
       -color_range 1 -color_primaries 1 -colorspace 1 -color_trc 6
       -video_track_timescale 90k -t 5 s.mp4

r с высокопрофильным потоком H264, поэтому его необходимо сопоставить.Я не знаю конкретных настроек кодировки, поэтому есть вероятность, что некоторые свойства, такие как refcount, не совпадают.

tbc не имеет значения для конкретных целей.Также не работают цветовые флаги, но я просто установил их для прилежных игроков.

Я бы порекомендовал вам смешать оба файла с TS, а затем слиться с MP4.Это позволит оставить основной видеосигнал в формате xPS, поэтому некоторые проигрыватели перезапускают декодер, даже если их свойства не совпадают идеально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...