YouROK / TorrServer

Torrent stream server
GNU General Public License v3.0
1.51k stars 192 forks source link

Нужна поддержка встраивания субтитров в видео или полноценный транскодинг #303

Closed alexeynl closed 11 months ago

alexeynl commented 11 months ago

Телевизоры не на Android (Samsung, LG) имеют ограниченный набор поддерживаемых форматов и видеокодеков. Обновить медиаплеер на них нельзя, такова политика производителей. В результате, например, при проигрывании видео с торрентов связкой Lampa + Torrserver с неподдерживаемым телевизором форматом субтитров последние отображаются на таких телевизорах криво (отсутствует форматирование и стили).

Было бы здорово для таких случаев использовать транскодинг, как для встраивания субтитров в видео, так и перевод его в понятный для телевизора формат. При этом варианты реализации вижу такие:

  1. Функционал транскодинга встроен в Torrserver,
  2. Транскодинг выполняется сторонними ПО. В этом случае Torrserver передает поток на стороннее решение, получает перекодированный поток и передает его на телевизор.

В свое время столкнувшись с проблемой на своем телевизоре пришлось из-за этого отказаться от использования Torrserver в пользу связки torrent клиент + медиасервер с функцией траскодинга. Спустя несколько лет решил актуализировать текущее положение дел, и оказалось, что ситуация в этом плане на стороне Torrserver не изменилась.

YouROK commented 11 months ago

Транскодинг это сильно усложнит функционал, мысли есть чтобы сделать, но это будет не в первую очередь, а про встраиваюние в поток субтитров еще сложнее Можно попробовать решить проблему при помощи этой программы https://github.com/bluenviron/mediamtx

alexeynl commented 11 months ago

Можно попробовать решить проблему при помощи этой программы https://github.com/bluenviron/mediamtx

Можете пояснить как эта программа может помочь в решении описанной мной проблем?

Клиенты Torrserver, такие как Lampa и Forkplayer обращаются и взаимодействуют с Torrserver для получения http потока и его передачи на видеоплеер на устройстве. Они ничего не знают про mediamtx или другие. Т.е. поток в любом случае должен передаваться со стороны Torrserver. Т.е. для встраивания транскодирования потока должна быть реализована следующая схема: torrserver клиент (lampa, forkplayer) -> torrserver -> транскодер (или другое стороннее решение) -> torrserver (http медиапоток) -> torrserver клиент (lampa, forkplayer) -> медиаплеер на устройстве. Другими словами на стороне torrserver должна быть реализовано не только формирование медиапотока, но и его получение со стороны транскодера и дальнейшая передача на клиент.

alexunderboots commented 11 months ago

And can be read from the server with: А с него хоть по RTSP хоть по HLS забирайте. Все необходимые настройки на главной странице опубликованы

alexeynl commented 11 months ago

Все необходимые настройки на главной странице опубликованы

Интересуют не конкретные настройки, а как это в принципе может быть реализовано.

А с него хоть по RTSP хоть по HLS забирайте.

С него это с кого: c torrserver или mediamtx? Чем забирать? Допустим torrserver сформировал HLS по запросу torrserver клиента (TorServe, Lampa, Forkplayer), mediamtx считал данный HLS поток и опубликовал его у себя. Как torrserver клиент узнает о существовании этого потока (его адрес на mediamtx сервере), если он ожидает его в ответе от самого torrserver? Предлагаете писать под это специальный torrserver клиент?