История изменений
Исправление kostik87, (текущая версия) :
Тебе написали решение.
Тебе нужно найти длину аудио, длину видео, вычесть из длины видео длину аудио и получить оффсет.
Тоже самое делает твой платный или ворованный адобе примьер.
Тебе нужно найти команды которые позволят тебе получить длины, потом посчитать разность, поместить ее в переменную и далее вызывать ffmpeg с указанием параметра смещение аудио из этой переменной.
Это простой алгоритм, ты справишься.
Повторяю ещё раз ровно этот же алгоритм делает премьер.
Искать за тебя команды которыми ты можешь узнать длину аудио или видео файла я не буду.
Поищи сам, потрудись.
А потом напиши скрипт.
Он будет содержать всего 4 строки:
- получить длину видео;
- получить длину аудио;
- посчитать разность;
- объединить аудио и видео с учётом смещения.
Все, это проще простого.
Возможно ты спросишь почему я думаю, что этот алгоритм делает премьер?
А потому, что кодирование аудио или видео может идти только с начала в конец.
В частности относительно видео для применения сжатия каждый последующий кадр это наложение на предыдущий кадр некоторой разности и получение следующего кадра.
Вот и получается, что премьер точно так же читает файлы с начала в конец.
А для того чтобы знать с какого места в результирующий контейнер вместе с видео потоком начать передавать аудио поток он в начале определяет длины потоков и получает их разность.
Чтобы у тебя все работало «одной» командой напиши в начале скрипт, который будет делать этот алгоритм и сохрани скрипт в исполняемый файл, а потом вызывай скрипт и в качестве аргументов передавай имена двух файлов, видео и аудио.
Исходная версия kostik87, :
Тебе написали решение.
Тебе нужно найти длину аудио, длину видео, вычесть из длины видео длину аудио и получить оффсет.
Тоже самое делает твой платный или ворованный адобе примьер.
Тебе нужно найти команды которые позволят тебе получить длины, потом посчитать разность, поместить ее в переменную и далее вызывать ffmpeg с указанием параметра смещение аудио из этой переменной.
Это простой алгоритм, ты справишься.
Повторяю ещё раз ровно этот же алгоритм делает премьер.
Искать за тебя команды которыми ты можешь узнать длину аудио или видео файла я не буду.
Поищи сам, потрудись.
А потом напиши скрипт.
Он будет содержать всего 4 строки:
- получить длину видео;
- получить длину аудио;
- посчитать разность;
- объединить аудио и видео с учётом смещения.
Все, это проще простого.