Я пытаюсь объединить два файла .cdg и .mp3, потому что хочу сделать из них один файл .mkv.
Когда я это делаю, я получаю файл .mkv в порядке, но звук, к сожалению, не синхронизируется с видео.
Итак, я задавался вопросом, почему это? Видимо, мне не хватает параметра в моей команде или что-то в этом роде.
Я делаю следующее:
ffmpeg -y -i song.cdg -i song.mp3 -pix_fmt yuv420p -vcodec libx264 -acodec copy song.mkv
Он работает нормально, но в данном конкретном случае результат рассинхронизирован примерно на 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
Тогда видео и аудио идеально синхронизируются.
Итак, мне интересно - какой параметр мне нужно добавить в мою команду, чтобы ffmpeg учитывал эту переменную?