Я пытаюсь объединить два файла .cdg и .mp3, потому что я хочу сделать из них один файл .mkv.
Когда я делаю это, я получаю файл .mkv, но к сожалению, аудио не синхронизируется с видео.
Итак, мне было интересно, почему это так? Видимо, я должен пропустить параметр в моей команде или что-то в этом роде.
Что я делаю так:
ffmpeg -y -i song.cdg -i song.mp3 -pix_fmt yuv420p -vcodec libx264 -acodec copy song.mkv
Это работает нормально, но в данном конкретном случае результат не синхронизирован c на ~ 1,2 секунды. Это варьируется для каждой песни, от 0 до пары секунд.
Однако, если я делаю ffprobe для файла .cdg, я замечаю, что это число уже присутствует, как переменная start_time:
ffprobe -v error -show_format -show_streams song.cdg
...
start_time=1.186667
...
Итак, если я просто использую это число напрямую, как это для параметра -itsoffset:
ffmpeg -y -itsoffset 1.186667 -i song.cdg -i song.mp3 -pix_fmt yuv420p -vcodec libx264 -acodec copy song.mkv
Тогда видео и аудио будут в идеальном синхронизации c.
Итак, мне интересно - какой параметр мне нужно добавить в мою команду, чтобы ffmpeg учитывал эту переменную?