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

Как добавить таймкод после конкатенации.

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
Наложение тайм-кода : Да
Язык : Английский
По умолчанию : Нет >> как сделать его по умолчанию?

enter image description here

Тайм-код записывается как общий тег в 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.

Дополнительные Рассмотрения

  1. Проверка метаданных: Для проверки добавленного временного кода воспользуйтесь инструментом ffprobe или mediainfo, которые позволят вам удостовериться в правильности отображения временного кода.
ffprobe -v error -show_entries format_tags=timecode -of default=noprint_wrappers=1 output.mkv
  1. Обработка ошибок: Всегда проверяйте, что все входные файлы поддерживают выбранные форматы кодеков и контейнеров. В противном случае может возникнуть ошибка на этапе обработки.

  2. Оптимизация: Используйте ключи настройки качества и кодировки, такие как -c:v, -preset, чтобы достичь наилучшего баланса между качеством и размером файла.

Заключение

FFmpeg представляет собой мощный инструмент для работы с мультимедийными файлами. Он предлагает гибкость и множество опций для задач различной сложности, таких как конкатенация видеофайлов с добавлением временного кода. Следуя предложенному алгоритму, можно достичь желаемого результата и эффективно управлять временными кодами в вашем видео. Не забывайте регулярно обновлять FFmpeg до последней доступной версии, чтобы пользоваться всеми новыми возможностями и улучшениями.

Оцените материал
Добавить комментарий

Капча загружается...