Добавьте поток, используя ffmpeg, не создавая новый файл

У меня есть несколько видео (.mp4), которые были помечены метаданными (описания, обложки, исполнители и т. Д.), И теперь у меня есть файлы субтитров для них, которые я хочу добавить в качестве потока.

Я могу использовать ffmpeg и установить как видео, так и файл .srt качестве входных данных и получить новый выходной файл, но на выходе всегда, кажется, теряются все метаданные уровня контейнера, и иногда это раздражает, всегда возвращаясь и удаляя исходные файлы.

Есть ли способ, чтобы я мог добавить файл субтитров в качестве нового потока в видеофайл без создания нового файла? Просто изменив исходный видеофайл?

Программы вроде Subler, похоже, делают это, но, из интереса, можно ли это сделать из командной строки?

Вы не можете редактировать файл с помощью ffmpeg – ему всегда нужно создать новый выходной файл. Я думаю, что это значение по умолчанию для практически любой программы, и во многих случаях выходной файл должен быть доступен для поиска и редактироваться программой во время записи. *

Если реальная проблема заключается в том, что вы теряете метаданные, попробуйте:

 ffmpeg -i input.mp4 -i subtitles.srt \ -c copy -c:s mov_text \ -map 0 -map 1 -map_metadata 0 output.mp4 

Вам нужно, чтобы ffmpeg конвертировал SRT (SubRip) в MP4-совместимые субтитры с -c:s mov_text , иначе ffmpeg отказывается копировать поток. **

Параметр -map_metadata должен копировать все глобальные метаданные из входного файла MP4 на выход, то есть все, что вы установили на уровне контейнера. Метаданные уровня битового потока должны быть скопированы автоматически без каких-либо дополнительных параметров.

* Конечно, программы, такие как sponge из moreutils, могут «впитывать» вход и перезаписывать файл на месте, но это работает только с мультиплексорами, которые поддерживают выход без поиска, и, следовательно, не с MP4.
** Есть проблемы с mov_text закодированными mov_text и проигрывателем QuickTime, см. Билет FFmpeg # 1845, а также # 2488 .

  • Масштаб (или центр) водяного знака с ffmpeg до того же разрешения, что и выходной файл
  • Почему Quicktime не воспроизводит файл фильма, закодированный FFmpeg?
  • Может ли ImageMagick создавать миниатюры из видео?
  • IPhone записывает видео, которые вращаются в системах Windows
  • Пост-обработка в ffmpeg для перемещения атома moov в файлах MP4 (qt-faststart)
  • Как получить информацию о битрейме с видео YouTube?
  • Объяснение настройки x264
  • Как создать видео с изображений с помощью FFmpeg?
  • Ffmpeg приостанавливает видео каждые 10 секунд в течение 3 секунд
  • Преобразование ffmpeg в MP4 не работает
  • Программа для преобразования flac в mp3?
  • Interesting Posts

    Маршрутизатор за маршрутизатором

    Как я могу постоянно назначать буквы дисков моим USB-устройствам в Windows?

    Как найти, где в Windows 7 отображается сетевой диск?

    Как выполнить тестирование объекта с запросами базы данных

    Как программно изменить контрастность растрового изображения в андроиде?

    Округлые обрезанные углы Android XML

    Как настроить параметры прокси-сервера, чтобы Eclipse мог загружать новые плагины?

    Как можно исключить исключения Event Dispatch Thread (EDT)?

    Данные многостраничной формы POST с использованием Retrofit 2.0, включая изображение

    Отображение определенного сервлета в качестве сервлета по умолчанию в Tomcat

    Как работает оператор модуля?

    Выбрасывать каждый четный или нечетный кадры с помощью FFmpeg?

    getActionBar () возвращает null

    Издевательские статические методы с использованием Rhino.Mocks

    Powershell – строка экранирования, переданная дочернему процессу

    Давайте будем гением компьютера.