Я хочу использовать ffmpeg для копирования всех метаданных, не связанных с основными аспектами видео (частота кадров, разрешение), из одного видео в другое. Есть ли простой способ сделать это с помощью одной команды?
2 ответа
13
Используйте -map_metadata
.
В этом примере глобальные и потоковые метаданные будут скопированы из in0.mkv
. Видео и аудио потоки будут скопированы с in1.mkv
:
ffmpeg -i in0.mkv -i in1.mkv -map 1 -c copy \
# copies all global metadata from in0.mkv to out.mkv
-map_metadata 0 \
# copies video stream metadata from in0.mkv to out.mkv
-map_metadata:s:v 0:s:v \
# copies audio stream metadata from in0.mkv to out.mkv
-map_metadata:s:a 0:s:a \
out.mkv
Это приведет к чему-то вроде:
Output #0, matroska, to 'out.mkv':
Metadata:
title : Global Title
AUTHOR : Global Author
Stream #0:0: Video: h264
Metadata:
title : Stream 0 Title
Stream #0:1: Audio: vorbis
Metadata:
title : Stream 1 Title
По умолчанию глобальные метаданные копируются из первого входного файла, поэтому -map_metadata 0
вероятно, можно было бы опустить.
-2
Если вам нужны только основы (дата создания и т.д.), Коснитесь -r ФАЙЛ1 ФАЙЛ2 Будет работать как метаданные, копирующие брелок из ФАЙЛА1 в ФАЙЛ2