Вопрос или проблема
ffmpeg -i input1.mp4 -i input2.webm -i input3.mov \
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0] \
[2:a:0]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mkv
Как добавить таймкод после конкатенации.
timecode : 09:59:59:10
ffmpeg -ss 00:00:00.000 -t 00:01:00.000 -i Input1.mp4 -ss 00:01:00.001 -t 00:01:00.000 -i Input2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1[v] [a]" -map "[v]" -c:v libx264 -aspect 4:3 -s 352:288 -coder 1 -profile:v main -level 3.1 -pix_fmt yuv420p -preset ultrafast -video_track_timescale 25 -g 12 -r 25 -bf 2 -refs 1 -x264-params "keyint_min=12:nal-hrd=cbr:b-pyramid=0" -b:v 2000k -minrate 2000k -maxrate 2000k -map "[a]" -codec:a libfdk_aac -b:a 192k -vbr 4 -ac 2 -async 1 -timecode 09:59:59:10 -f mov 18785_V1.mov
Информация о медиа:
Другое
ID : 3
Тип : Тайм-код
Формат : QuickTime TC
Продолжительность : 2 мин 0 с
Тайм-код первого кадра : 09:59:59:10
Наложение тайм-кода : Да
Язык : Английский
По умолчанию : Нет >> как сделать его по умолчанию?
Тайм-код записывается как общий тег в Matroska, поэтому
ffmpeg -i input1.mp4 ... -map "[outa]" -timecode 09:09:55:00 output.mkv
ffprobe и mediainfo покажут это как часть глобальных метаданных.
Ответ или решение
Теория
FFmpeg — это мощный инструмент для обработки видео и аудио, который предоставляет широкий набор функций, включая кодирование, декодирование, фильтрацию и многократную перепаковку мультимедийных данных. Часто возникает необходимость объединять различные видеофайлы в один, при этом добавляя такие метаданные, как временной код (timecode). Временной код позволяет синхронизировать мультимедийные элементы и является важной составляющей в профессиональной обработке видео, особенно в сферах, связанных с редактированием и пост-продакшеном.
Пример
Вы предоставили команду для объединения трех видеофайлов с использованием FFmpeg, и ваш запрос касается добавления временного кода к полученному выводу. В данном случае, временной код, который требуется добавить после конкатенации, задан как «09:59:59:10». Рассмотрим, как можно выполнить эту задачу, следуя шагам, которые помогут правильно настроить и выполнить команду.
Применение
Для добавления временного кода к видеофайлам после их объединения, можно воспользоваться возможностями FFmpeg. Мы рассмотрим пример, основанный на вашей задаче, и предоставим инструкцию, которая позволит достигнуть желаемого результата.
Начнем с базовой команды, которая конкатенирует ваши видео:
ffmpeg -i input1.mp4 -i input2.webm -i input3.mov \
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mkv
Для добавления временного кода после конкатенации видео, используйте следующее: сначала убедитесь, что формат контейнера поддерживает запись временного кода. В вашем случае финальный контейнер — Matroska (.mkv), который способен хранить временной код как часть общих метаданных.
Вот пример команды, которая добавит временной код:
ffmpeg -i input1.mp4 -i input2.webm -i input3.mov \
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" -metadata:s:v:0 timecode="09:59:59:10" output.mkv
Уточнение
Обратите внимание, что временной код может быть добавлен через метаданные, как демонстрируется выше. FFmpeg позволит использовать опцию -metadata:s:v:0 timecode=<ваш_временной_код>
, которая привязывается к первой дорожке видео, обозначенной как v:0
. Важно убедиться, что указанный временной код имеет соответствующий формат и соблюдает стандарты SMPTE.
Дополнительные Рассмотрения
- Проверка метаданных: Для проверки добавленного временного кода воспользуйтесь инструментом
ffprobe
илиmediainfo
, которые позволят вам удостовериться в правильности отображения временного кода.
ffprobe -v error -show_entries format_tags=timecode -of default=noprint_wrappers=1 output.mkv
-
Обработка ошибок: Всегда проверяйте, что все входные файлы поддерживают выбранные форматы кодеков и контейнеров. В противном случае может возникнуть ошибка на этапе обработки.
-
Оптимизация: Используйте ключи настройки качества и кодировки, такие как
-c:v
,-preset
, чтобы достичь наилучшего баланса между качеством и размером файла.
Заключение
FFmpeg представляет собой мощный инструмент для работы с мультимедийными файлами. Он предлагает гибкость и множество опций для задач различной сложности, таких как конкатенация видеофайлов с добавлением временного кода. Следуя предложенному алгоритму, можно достичь желаемого результата и эффективно управлять временными кодами в вашем видео. Не забывайте регулярно обновлять FFmpeg до последней доступной версии, чтобы пользоваться всеми новыми возможностями и улучшениями.