Как решить проблему с копированием потоков данных GoPro в MP4 с помощью FFmpeg 7.1 на macOS

Как сжать видеофайлы MP4 с помощью FFmpeg на macOS

Сжатие видеофайлов может быть необходимым шагом для оптимизации пространство хранения и обеспечения совместимости с различными устройствами. Если у вас есть видеофайлы, созданные GoPro, и вы хотите сохранить их в формате MP4, этот процесс может включать в себя работу с метаданными, такими как данные GPS. В данной статье мы расскажем, как использовать FFmpeg 7.1 для сжатия файлов MP4 на macOS, избегая возможных ошибок.

Проблема с выводом MP4

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

[mp4 @ 0x13af06a70] You requested a copy of the original timecode track so timecode metadata are now ignored
[mp4 @ 0x13af06a70] Could not find tag for codec none in stream #2, codec not currently supported in container
[out#0/mp4 @ 0x600000194180] Could not write header (incorrect codec parameters ?): Invalid argument

Эти ошибки возникают из-за того, что некоторые потоки, такие как tmcd (временные метки), не поддерживаются в формате MP4 и не могут быть скопированы с помощью стандартного метода.

Шаги для успешного сжатия видео

Для успешного сжатия видеофайла в формат MP4 с сохранением нужных метаданных, важно правильно настроить команду FFmpeg. Оригинальная команда, которая работает для формата MOV, выглядит следующим образом:

ffmpeg -i GX-0195-02.MP4 -copy_unknown -map 0 -map_metadata 0 -c:v hevc_videotoolbox -q:v 45 -vtag hvc1 GX-0195-02-htb45.mov

Однако при замене расширения на .mp4, возникают проблемы. Чтобы обойти эти ошибки, вам нужно явно указать, какие потоки должны быть включены в вывод. Например, использование следующей команды:

ffmpeg -i GX-0195-02.MP4 -copy_unknown -map 0:0 -map 0:1 -map 0:3 -map_metadata 0 -c:v hevc_videotoolbox -q:v 45 -vtag hvc1 GX-0195-02-htb45.mp4

Что делает команда

  • -copy_unknown: Этот флаг говорит FFmpeg копировать все неизвестные потоки (например, метаданные) в выходной файл.
  • -map 0:0 -map 0:1 -map 0:3: Эти параметры указывают, что необходимо включить видеопоток, аудиопоток и другие поддерживаемые потоки, но пропустить поток временной метки (tmcd), который не поддерживается в формате MP4.
  • -map_metadata 0: Копирует метаданные из входного файла.
  • -c:v hevc_videotoolbox и -q:v 45: Определяют кодек и качество видео.

Заключение

Работа с видеофайлами, созданными GoPro, может быть сложной задачей, особенно если необходимо сохранить метаданные и сразу же сжать файл. Используя FFmpeg на macOS, вы можете легко решить эти проблемы, правильно формируя команды. Теперь у вас есть рабочий пример, который поможет вам сжать видеофайлы в MP4 без потери данных и метаданных. Не забывайте проверять потоковую структуру ваших файлов, чтобы понимать, какие потоки можно оставить, а какие удалить.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *