includes/classes/conversion/ffmpeg.class.php:306
- public function extract_subtitles()
намекает на то что субтитлы сами не генерятся, а лишь извлекаются, в случае если они эмбедед в видеофайле.
includes/functions_video.php:
- get_video_subtitles($vdetails)
считывает субтитлы из пути files/subtitles/YYYY/MM/DD/filename.srt filename.srt формируется из cb_video.file_name и cb_video_subtitle.number. Как выглядит содержимое cb_video_subtitle.number пока непонятно - таблица пуста.
Проба с самодельным видео с субтитрами
Написан скрипт (~/whisper/gen_subtitles.py) генерации субтитлов с применением ai-whisper. Через него сгенерены субтитлы для тестового файла. Затем они заэмбедены в файл:
ffmpeg -i "как вы относитесь к американцам.mp4" -vf subtitles="как вы относитесь к американцам.srt" 'kak_with subtitles.mp4'
Файл проверен (вернул 1 в случае наличия):
ffmpeg -i 'kak_with subtitles.mp4' -c copy -map 0:s:0 -frames:s 1 -f null - -v 0 -hide_banner; echo $?
Вендовый плеер показывает субтитлы, уже врисованные в картинку кадров. Клипбукет после загрузки этого видео не выдал признаков работы с субтитлами. Таблица cb_video_subtitle пуста. Попытка подкинуть files/subtitles/2024/03/17/1710674378a7c19.srt (как бы в соответствии с залитым видео) не дало эффекта.
В логах обработки указано что субтитлы не обнаружены.
Проба с matroska-видео с субтитрами
Использован тестовый видеофайл test5.mkv в котором содержатся 8 языковых субтитров. Вендовый плеер правильно все отображает. 1 из языков (und) непонятно какой, отбражался кракозябрами (возм.иероглифы). В клипбукете зааплоадился и пошел в обработку. Логи показали что найдены и экстрагируются субтитлы - 7 шт. за исключением непонятного und. При проигрывании в плеере появилась опция субтитлов с выбором 7 яз. Но субтитры не отображаются. В files/subtitles/2024/03/17/ пусто. В таблице cb_video_subtitle появились записи:
SELECT * FROM cb_video_subtitle;
+---------+--------+-------+
| videoid | number | title |
+---------+--------+-------+
| 11 | 01 | eng |
| 11 | 02 | hun |
| 11 | 03 | ger |
| 11 | 04 | fre |
| 11 | 05 | spa |
| 11 | 06 | ita |
| 11 | 07 | jpn |
+---------+--------+-------+
Предположительно, функция в классе Mpeg не смогла записать файлы, но и не выдала ошибок. Каталог на тот момент был уже создан.