Материал из CB Wiki
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к: навигация, поиск

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 (includes/classes/conversion/ffmpeg.class.php:306 public function extract_subtitles() ) не смогла записать файлы, но и не выдала ошибок. Каталог на тот момент был уже создан.

Во 2й попытке при включенном дев-режиме сгенерились субтитры (внутри - формат WEBVTT):

17106855557fdc5-01.srt 17106855557fdc5-02.srt 17106855557fdc5-03.srt 17106855557fdc5-04.srt 17106855557fdc5-05.srt 17106855557fdc5-06.srt 17106855557fdc5-07.srt

Также получились более подробные логи, в которых видно что все прошло хорошо.. В коде фции extract_subtitles() есть условие if (in_dev()) но оно только подключает подробное логирование.

Повторная попытка конвертации в обычном режиме привела к генерации субтитров - видимо в 1й раз случился какой-то сбой.