Какие расширения файлов поддерживает ffmpeg?

Я пытаюсь извлечь субтитры с диска Blu-ray, и это hdmv_pgs_subtitle . Поэтому я стараюсь

 ffmpeg -i file.m2ts -map 0:3 -scodec copy rip3/test.sub 

и получить

 Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted 

Тогда я

 ffmpeg -i file.m2ts -map 0:3 -scodec copy rip3/test.sup ffmpeg -i file.m2ts -map 0:3 -scodec copy rip3/test.srt 

И множество других расширений, пока я не дам .mkv выстрел, который работает.

Как я могу найти, какие расширения ffmpeg позволяет? Я не нашел одно место, например, имена .mkv как расширение

matroska упоминает matroska , но не говорит, что .mkv является расширением. Итак, есть способ найти все поддерживаемые расширения файлов для ffmpeg?

EDIT: после прочтения ответа от slhck я нашел расширения, выполнив эту команду в исходной папке.

найти . -type f -iname "* .c" -exec egrep -H ".extensions" {} \;

Имя файла даст некоторую информацию о том, какой формат он имеет.

Во-первых, вы можете видеть все форматы (контейнеры), вызывая ffmpeg -formats . То, что они не упоминают расширения, вероятно, связано с тем, что само расширение часто бессмысленно, и вы можете переопределить выходной формат, используя опцию -f .

Вы можете видеть, какие общие расширения предназначены для определенного (de) мультиплеера. Например:

 $ ffmpeg -v 1 -h demuxer=matroska Demuxer matroska,webm [Matroska / WebM]: Common extensions: mkv,mk3d,mka,mks 

Форматы вывода и их расширения регистрируются в кодировщиках. Итак, вы найдете это для Matroska, глядя на исходный код ffmpeg:

 AVOutputFormat ff_matroska_muxer = { .name = "matroska", .long_name = NULL_IF_CONFIG_SMALL("Matroska"), .mime_type = "video/x-matroska", .extensions = "mkv", .... 

Форматы ввода обычно не анализируются их расширением, а фактическими данными.

Также см:

  • Документация форматов FFmpeg
  • Документация FFmpeg: Поддерживаемые форматы файлов, кодеки или функции .

Проблема в том, что только два из всех форматов ffmpeg могут обрабатывать субтитры HDMV PGS:

  • MPEG-TS
  • MKV (Матроска)

Вы не можете использовать контейнер SRT, потому что это другая концепция. Субтитры SRT основаны на тексте, а субтитры HDMV PGS – это фактические растровые изображения.

Таким образом, это должно работать, если все, что вам нужно сделать, это хранить субтитры где-то:

 ffmpeg -i input.mkv -c:s:0 copy -map 0:s:0 output.mks 
  • Интеграция FFMPEG по проекту iphone / ipad
  • FFMPEG Windows Generate 360p Video conversion failed
  • Получение streamа RTSP с использованием библиотеки FFMPEG
  • Как управлять генерацией ключевого кадра ffmpeg?
  • Телевизионные записи WTV и DVR-MS, следует ли я де-чередовать или нет?
  • FFmpeg - нанести размытие на лицо
  • Как преобразовать файл mkv в mp4 с субтитрами и сменить звук DTS на AAC или AC3?
  • Исправлена ​​ошибка инициализации ffmpeg drawtext
  • Сбрасывайте метаданные из всех форматов с помощью FFmpeg
  • Как извлечь субтитры из видео с помощью ffmpeg?
  • Опция threading работает с Lame в FFMpeg
  • Interesting Posts

    Советы по использованию vim в качестве средства просмотра журнала

    Android – Как переопределить кнопку «Назад», чтобы она не закончила () мою активность?

    Правильный способ выхода из приложения iPhone?

    Создать PDF-закладки в Word 2010 без использования заголовков?

    Как установить эффект пульсации на textview или изображение на Android?

    Все интернет-браузеры не будут разрешать DNS, кроме TorBrowser

    VM на хосте ESXi – Как сделать доступным извне?

    Как обрабатывать ошибки службы ресурсов в AngularJS

    Подзапросы с EXISTS против IN – MySQL

    Как направить вход колеса мыши на управление под курсором вместо сфокусированного?

    Проверка правильности выбора jQuery

    Любые гарантированные минимальные размеры для типов в C?

    Печать * s как треугольники в Java?

    Как платформа Java независима, когда ей нужна JVM?

    Непосредственная ошибка загрузки и графические артефакты при загрузке (ТОЛЬКО после выключения часов)

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