Транскодировать RTMP прямой эфир для нескольких клиентов

1426
gertmenkel

Я регулярно отслеживаю прямые трансляции на сайте picarto.tv. Веб-сайт использует RTMP для потоковой передачи, поэтому для отображения источника видео требуется флэш-память. Многие (мобильные / встроенные) устройства не имеют флеш-памяти, поэтому я хочу, чтобы видео было в формате, подобном MP4.

У меня есть двухъядерный VPS под управлением Ubuntu 14.04 с 2 ГБ ОЗУ, который я хочу использовать для перекодирования видео в реальном времени. VPS имеет сетевой канал 1 Гбит / с, поэтому пропускная способность не является реальной проблемой, хотя она ограничена 500 ГБ в месяц.

То, что я хочу, это уметь:

  • Смотрите трансляцию на моем телефоне / планшете / умном телевизоре / не флэш-устройстве
  • Разрешить одновременный просмотр видео как минимум на 10-15 устройствах
  • Поэтому я хочу предотвратить создание потока транскодирования для каждого клиентского устройства.
  • Использование потокового вывода MP4 кажется лучшей идеей, потому что большинство устройств поддерживают его

Я пытался ffmpegпреобразовать RTMP в MP4, но это позволяет только для одного клиента. Все cvlcкоманды, которые я обнаружил, либо слишком интенсивны для моего сервера, либо не выводят видео вообще.

ffserverвроде работал, но это было слишком нестабильно и больше не поддерживается. Это дало мне расплывчатые ошибки, которые нельзя было отследить ни по какой реальной причине, а иногда и вообще ничего не выводило без чего-либо в журналах.

Есть ли какой-нибудь инструмент (например, ffserverно поддерживаемый) или какой-то другой способ для меня, чтобы предоставить версию MP4 потока RTMP, способом однократного декодирования, потоку ко многим?

1

1 ответ на вопрос

2
LiveStreamer

Try the openvcx openvsx stream processor component from github.com/openvcx/openvcx

A command line like this would ingest the RTMP stream and output it for Chrome, Safari, iOS, Android.

bin/vsx -v --capture=rtmp://x.x.x.x/bla/lalala --live=8080 --mkvlive --httplive --rtsp --flvlive

You may also need to transcode it with --xcode=... command line. More info on that here http://openvcx.com/vsxuserguide.php

Похожие вопросы