Використання ffmpeg для копіювання метаданих з одного файлу в інший


17

Я хочу використовувати ffmpeg для копіювання всіх метаданих, не пов'язаних з основними аспектами відео (частота кадрів, роздільна здатність) з одного відео на інше. Чи є простий спосіб зробити це за допомогою однієї команди?

Відповіді:


19

Використовуйте -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ймовірно, їх можна опустити.


1
Якщо вашим вихідним відео є .mov-файл, вам потрібно також додати прапор, -movflags use_metadata_tagsабо вихідне відео не буде містити метадані.
Мастергален

-3

Якщо все, що вам потрібно, - це основи (дата створення тощо), тоді торкніться -r FILE1 FILE2 буде працювати метаматеріалами привабливості від FILE1 до FILE2


Якщо ви читаєте питання, мета - це метадані відео, а не метадані файлу.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.