Як витягти субтитри з відео на лінукс?

Нові коментарі

Нова тема   Відповісти
Автор Повідомлення
mastermob 
Поважний учасник


З нами з: 16.06.09
Востаннє: 18.02.25
Повідомлень: 188

2024-07-16 00:59  
Доброго дня.
Підкажіть будь ласка, як витягти субтитри з файлу для подальшого редагування і перекладу?
Система кубунту 22.04
Маю окремо чим субтитри додати і чим їх редагувати. А витягти не можу. subtitlecomposer відкриває відео але не відриває субтитри. mkvtoolnix відкриває файл, бачить субтитри але зберегти не виходить.
urij546724 
Відео Гуртом - фільмокрай
Відео Гуртом - фільмокрай


З нами з: 16.03.10
Востаннє: 20.02.25
Повідомлень: 7903

2024-07-16 05:02  
inbalboa 
Новенький


З нами з: 15.09.19
Востаннє: 20.02.25
Повідомлень: 2

2024-07-16 08:26  
ffmpeg -i ~/Video/Film. -map '0:2' ~/Video/subtitles.srt

Що вказувати замість 0:2, можна дізнатися командою
ffmpeg -i ~/Video/Film.
mastermob 
Поважний учасник


З нами з: 16.06.09
Востаннє: 18.02.25
Повідомлень: 188

2024-07-16 23:05  
Дякую.
Через ffmpeg виявилося простіше видобути файлик.
Але з самого початку сабів є проблема.
Якось воно частково повитягало.
До прикладу, при перегляді мультика герой вітається з друзями і в сабах плеера є його репліка.
А у витягнутому файлі, фрази немає.

Підкажіть будь ласка в чому проблема?

Хоча спробував mkvextract то начебто краще вийшло. Початок діалогу є. Далі треба дивитися.

-i Film.
mkvextract tracks Film. -c utf8 3:sub2.srt

Думаю, що опцію -c можна не вказувати зовсім, бо типово і так буде в utf-8. Вказується якщо треба інше кодування, наприклад win-1251
HTTPS2HTTPS 
Поважний учасник


З нами з: 05.02.17
Востаннє: 20.02.25
Повідомлень: 153

2025-02-11 23:38  
0) встановлюємо ffmpeg i jq
sudo apt install ffmpeg jq

1) Виводимо на екран всі доріжки субтитрів:
ffprobe -v quiet -show_format -show_streams -print_format json "Назва_кіно" | jq ".streams[] | select(.codec_type=="subtitle" and .index==$sub_map)" | jq --raw-output '((.index|tostring) + ": " + .codec_name + " <" + .tags.title + "> " + .tags.language)'

Приклад:
ffprobe -v quiet -show_format -show_streams -print_format json "Rango." | jq '.streams[] | select(.codec_type=="subtitle")' | jq --raw-output '((.index|tostring) + ": " + .codec_name + " <" + .tags.title + "> " + .tags.language)'

4: subrip <Forced> ukr
5: subrip <Full> ukr
6: subrip <Full> eng
7: subrip <Commentary> eng


2) Потім зберігаємо потрібну доріжку у файл (доріжка номер 5):
ffmpeg -i "Назва_кіно" -map "0:5" файл_сабів-5.txt
Ваш часовий пояс: GMT + 2 Години

Нова тема   Відповісти