ffmpeg concat делает видео асинхронным со временем - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть несколько файлов, подобных этим двум, показанным ниже (всегда input_X.tmp.avi и input_X_tmp.start.avi), которые я хочу объединить.Видео / аудио синхронизируются в этих файлах.

Со временем полученный файл становится асинхронным.Я искал в стеке потока несколько часов, пробуя различные параметры, такие как

  • async 1
  • vsync 1
  • async 25
  • fflags+ genpts

и так далее.Но я не могу найти решение своей проблемы.

ffmpeg -f concat -fflags +genpts -i concat.txt -c:a copy -c:v copy -y out.avi

Когда я перекодирую аудиопоток, все в порядке.Тем не менее, я бы предпочел, если бы было решение без перекодирования аудио.Может быть, у кого-то есть совет, что я должен изменить, чтобы сделать эту работу.

Файл 1:

Input #0, avi, from 'input_0.tmp.avi':
  Metadata:
    encoder         : Lavf58.12.100
  Duration: 00:33:59.36, start: 0.000000, bitrate: 1002 kb/s
    Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(tv, bt470bg, progressive), 720x576 [SAR 64:45 DAR 16:9], 797 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 192 kb/s

Файл 2:

Input #0, avi, from 'input_0.tmp.start.avi':
  Metadata:
    encoder         : Lavf58.12.100
  Duration: 00:00:11.59, start: 0.000000, bitrate: 428 kb/s
    Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(progressive), 720x576 [SAR 64:45 DAR 16:9], 220 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 192 kb/s

Результат:

Input #0, avi, from 'out.avi':
  Metadata:
    encoder         : Lavf58.12.100
  Duration: 02:05:40.56, start: 0.000000, bitrate: 975 kb/s
    Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(progressive), 720x576 [SAR 64:45 DAR 16:9], 770 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 192 kb/s

Различные файлы, которые я получил от input_X ...avi - это набор файлов, которые я только что вырезал с / без перекодирования из того же файла.

...