Как сохранить побочные данные при объединении файлов в ffmpeg?

У меня есть несколько 360-градусных видео, которые я пытаюсь объединить в ffmpeg. Сама команда довольно проста:

ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial 36.mp4

где 0036_concat.txt - это просто список отдельных файлов. У меня проблема в том, что я не могу заставить ffmpeg сохранять побочные данные. Проще говоря, ffprobe в любом из исходных файлов включает следующее:

Side data:
  spherical: equirectangular (0.000000/0.000000/0.000000)

И я не могу, хоть убей, заставить это распространяться в выходной файл.

у этого вопроса есть решение, которое работает для отдельные файлы, но это не работает при объединении нескольких файлов.

Я был бы прекрасно впрыснул всю эту строку, если кто-нибудь знает, как это сделать.


person Mark Kahn    schedule 09.05.2020    source источник
comment
Можете ли вы предоставить ссылку на один из отдельных файлов, перечисленных в 0036_concat.txt?   -  person llogan    schedule 10.05.2020
comment
@llogan - Содержимое файла - это просто file 'name.mp4'\nfile 'name2.mp4' и т. д.   -  person Mark Kahn    schedule 11.05.2020
comment
@llogan - плохо, неправильно это понял. Вот клип продолжительностью 1 секунду: dropbox.com/s/qntwf6m85sxvar9/GS020101. mp4? dl = 0   -  person Mark Kahn    schedule 15.05.2020
comment
Посмотрим, поможет ли это? stackoverflow.com/questions/11706049/   -  person Tarun Lalwani    schedule 25.05.2020
comment
@TarunLalwani - К сожалению, нет. Я видел этот ответ раньше и не понимаю, почему он не работает, я предполагаю, что на самом деле это не метаданные в соответствии с ffmpeg. Практически нет документации по побочным данным   -  person Mark Kahn    schedule 26.05.2020


Ответы (1)


Очевидно ffmpeg этого не поддерживает. Многие предлагают разработать собственное расширение для FFmpeg, но я счел его излишним.

Вместо этого Я успешно сделал это, используя google spatialmedia для добавления дополнительных данных к выходному видео, полученному в результате объединения FFmpeg. Это так просто, как

python spatialmedia -i 36.mp4  equirectangular.mp4

Вы можете получить пространственные медиа из его официального репозитория. Загрузите последний выпуск, распакуйте его, и вы будете может запустить указанную выше команду напрямую.

Если у вас его нет, сначала необходимо установить python.

Это все, что вам нужно.


Ниже я добавляю пример в моем локальном с вашим собственным видео.

Я загрузил ваш образец файла и создал приведенный ниже список файлов.

введите здесь описание изображения

Запускаем ffprobe GS020101.mp4, видим, что Side data: spherical: equirectangular (0.000000/0.000000/0.000000) там

введите здесь описание изображения

Беги ffmpeg -f concat -i 0036_concat.txt -c copy -strict unofficial output.mp4

Запускаем ffprobe output.mp4, как вы и ожидали, побочных данных нет

введите здесь описание изображения

Запустите python spatialmedia -i output.mp4 equirectangular.mp4

введите здесь описание изображения

Запустите ffprobe equirectangulat.mp4, на этот раз вы успешно увидите ожидаемые побочные данные.

введите здесь описание изображения

person Carlos Robles    schedule 27.05.2020
comment
К сожалению, это на самом деле не отвечает на вопрос. Я знаю о пространственном инжекторе медиа, но не все, что у меня есть, равноугольные, поэтому он не работает - person Mark Kahn; 02.06.2020
comment
Это единственный ответ, который я нашел до сих пор, который позволил мне загрузить на YouTube плохо сшитое 360-градусное видео. Спасибо! Просто нужно поработать над моей проблемой сшивания! - person Trook2007; 27.03.2021