Запись субтитров с помощью ffmpeg в поток rtmp с использованием mkv со встроенными субтитрами .ass
Я дергал себя за волосы, пытаясь понять, как именно это сделать. У меня есть видеофайлы, которые я передаю через rtmp с помощью ffmpeg, в который я пытаюсь записать встроенные (?) .Ass субтитры. У меня это отлично работает с субтитрами на основе картинок, но .ass был проклятием моего существования в последние несколько месяцев, и я почти сдался. Я очень плохо знаком с потоковым вещанием и все еще учусь, и, несмотря на все руководства и все, что я читал в Интернете, я просто не могу это сделать ..
Вот часть файла примера:
Duration: 00:24:37.51, start: 0.000000, bitrate: 1674 kb/s Chapter #0:0: start 0.000000, end 1354.895000 Metadata: title : Main Chapter #0:1: start 0.000000, end 90.000000 Metadata: title : ED Chapter #0:2: start 1354.979000, end 1386.969000 Metadata: title : Preview Stream #0:0(eng): Video: h264 (High), yuv420p, 704x480 [SAR 1:1 DAR 22:15], SAR 10:11 DAR 4:3, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (defaul Stream #0:1(eng): Audio: aac (LC), 44100 Hz, 5.1, fltp (default) Metadata: title : AAC 5.1 Stream #0:2(jpn): Audio: aac (LC), 44100 Hz, 5.1, fltp Metadata: title : AAC 5.1 Stream #0:3(eng): Subtitle: ass (default) Metadata: title : OP/ED Stream #0:4(eng): Subtitle: ass Metadata: title : Full
У меня есть скрипт, который может делать субтитры на основе картинок, когда у меня есть:
-filter_complex "[0:v][0:6]overlay=(W-w)/2:H-h[v]" \ -map "[v]" \ -map 0:2 \
Затем я вернулся к предыдущему шаблону и нашел:
-vf subtitles="$i":force_style='FontName=DejaVu Sans':force_style='Fontsize=15' \
Тем не менее, это все еще не работает. Я пытался разместить его сразу после ввода и перед выводом. Все еще ничего не работает, как я надеялся, и все, что я получаю, это ответы вроде этого:
[Parsed_subtitles_0 @ 0x209c1a0] Unable to open [file].mkv [AVFilterGraph @ 0x208e7c0] Error initializing filter 'subtitles' with args '[file].mkv:force_style=FontName=DejaVu
Если потребуется дополнительная информация, я с удовольствием предоставлю ее. Опять же, я очень новичок во всем этом и даже не знаю, предоставляю ли я нужную информацию прямо сейчас ... Это мое последнее средство, так как я пытался читать руководства, но, похоже, ничего конкретного что я пытаюсь сделать У меня ушло почти 5 месяцев, чтобы понять, как заставить работать субтитры на основе картинок ... Любая помощь приветствуется. Спасибо.
ОБНОВИТЬ
Перебрав все виды разных команд, я начал убирать
:force_style='Fontsize=15'
от линии выше. Субтитры теперь отображаются в потоке, но я не могу понять, как указать, какой поток субтитров отображать. Я пытался использовать -map, чтобы заставить его, но получить:
Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:2 -> #0:1 (aac (native) -> aac (libfdk_aac)) Stream #0:4 -> #0:2 (ass (native) -> ? (?))
Я также попытался это, что я нашел после поиска
-vf subtitles="$i":si=4
это должно было позволить мне выбрать альтернативный поток субтитров, но это также привело к ошибке
[Parsed_subtitles_0 @ 0x15720c0] Unable to locate subtitle stream in Trigun.S01E01.The.60.Billion.Double.Dollar.Man.mkv [AVFilterGraph @ 0x14f1360] Error initializing filter 'subtitles' with args 'Trigun.S01E01.The.60.Billion.Double.Dollar.Man.mkv:si=4:force_style=FontName=DejaVu Sans'
так ... угу? немного прогресса?
ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ!
Я был близко, но нуждался в некотором разъяснении, чтобы помочь решить это.
si=
Правильно, но я подумал, что мне нужно указать 4 в качестве 5-го потока в файле, когда мне фактически нужно было дать ему 1, чтобы выбрать 2-й поток субтитров ...
-vf subtitles="$i":si=1:force_style='FontName=DejaVu Sans'
работает просто отлично, и у меня есть правильные субтитры, которые записываются прямо в поток.
Для справки вот что я использую:
ffmpeg -re -i [file].mkv -map 0:v -map 0:2 -vf subtitles="$i":si=1:force_style='FontName=DejaVu Sans' -c:v libx264 -pix_fmt yuv420p -profile:v high -preset veryfast -crf 23 -maxrate 1.5M -bufsize 2.5M -threads 0 -c:a libfdk_aac -ac 2 -af "volume5.5" -f flv -b:v 900k -maxrate 1.5M -bufsize 2M rtmp://[server]/[mountpoint]/[key]
Я продолжаю настраивать и настраивать по мере необходимости. Например, была добавлена громкость, потому что во многих видео, которые мне попадались, звук очень тихий, возможно, потому, что я конвертирую многоканальную дорожку в 2 канала. В любом случае спасибо за помощь! Я надеюсь, что это может как-то помочь кому-то еще, кто испытывает затруднения, выясняя это самостоятельно!
0 ответов на вопрос
Похожие вопросы
-
3
Windows Media Center (Vista): дополнение или программное обеспечение для обрезки телевизионных запис...
-
3
Обработка видео с картами ATI
-
1
VirtualDub для Linux
-
-
2
Какое использование диска используют видео в формате RAW?
-
1
Приложения Java в браузере вспыхивают / рвутся при прокрутке - почему это так?
-
3
Воспроизведение видео рипов с помощью Windows Media Center
-
5
Как лучше всего смотреть интернет-фильмы (Hulu и т. Д.) На моем телевизоре?
-
4
Вставить Flash видео в документ MS Word (2003 или 2007)
-
10
Принудительно установить собственное разрешение для монитора без PnP в Windows
-
4
Как узнать, почему Windows Media Center не воспроизводит фильм?