Извлечение текстовых субтитров с использованием библиотек ffmpeg

Я пишу программу на C, которая использует libav* libs для ffmpeg, и, используя руководство Дрангера, я могу правильно декодировать аудио и видео. В настоящее время я пытаюсь извлечь субтитры. На самом деле я не хочу декодировать их вовремя и отображать на видео, но на самом деле извлекаю текст субтитров из контейнера.

Например, на кли,

ffmpeg -i video.mkv -map 0:4 -scodec copy out.ass

вернул бы мне задницу. (По некоторым причинам srts только возвращает текст.)

Я пробовал возиться с AVSubtitle, avcodec_decode_subtitle2 и т. Д., Но они возвращают субтитры построчно. Я хотел бы, чтобы временные коды в srts, информация заголовка в заднице и т. Д. Все, что я хочу, это весь текстовый файл субтитров, который был мультиплексирован в контейнер.

1 ответ

В случае файлов.mkv вы можете использовать mkvextract. Вам может понадобиться использовать mkvinfo Сначала определите, какую дорожку вы хотите извлечь.

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

Другие вопросы по тегам