Comments 32
curl, make install… всё как мы любим. Стандартные заклинания.
Как минимум youtube-dl доступен в pypi (pip install youtube-dl) и в этом случае в скрипте одним popen станет меньше. Что, впрочем, не критично.
Ваш метод установки ffmpeg (или libav) имеет смысл, если в репах пакет собран с неподходящими флагами. Но, скорее всего, он собран подходяще. Тут я могу и ошибаться давненько я это делал.
2017 год на дворе, make install — стандартные заклинания.
Тогда уж опишите, чего не хватает в популярных дистрибах типа debian/rhel
Ну, это не повод не использовать хотя бы checkinstall. :)
Если бы вы не забыли использовать --prefix
и сделали бы локальное дерево, например, в /opt/live_streaming
, то можно было бы понять, в противном случае - бескультурие
Мифическая фишка какая-то. Я уже не помню когда в последний раз такое работало. Кажется, это было еще в флеш-версии проигрывателя.
Попытка перемотать тяжелое видео в HTML5-версии в одном случае из трех у меня заканчивается тем, что видео замедляется в два раза (при сохранении скорости воспроизведения звуковой дорожки). Попытка сделать то же самое в проигрывателе VLC приводит к вечной загрузке видео...
А что тут не опенсорсного? А что вам показывает гугл по запросу "webrtc open source"?
Это какой же? Мне, например первой ссылкой показывает какую-то куренту https://www.kurento.org не оно?
Сейчас же разве что webtorrent добавился.
Usecase какой-то очень надуманный, либо я его не понял.
Почему участники "веб-конференции" не могут посмотреть ролик напрямую с ютюба?
Потому что он у них будет воспроизводиться с разной средней скоростью
Звучит не очень убедительно.
Можете придумать реальный пример, где бы это было реальной проблемой?
Автор, а сравнивал решение с Nginx + rtmp-module?
Лучше, хуже, также?
Я на его базе делал чат, чтобы можно было совместно видео смотреть :))
На браузерах флэш, можно сказать, умер. В Android Chrome его нет, в Mac Safari выключен, в Edge выключен.
Играть Live-видео можно этим:
- WebRTC
- Media Source Extensions
- HLS/DASH
- Canvas rendering
Было лень ковырять ffmpeg, потому схитрожопил. Есть такая штука, как electron(https://electron.atom.io/) — гибрид ноды и браузера.
В актуальных обозревателях есть такая вещь, как captureStream(https://developer.mozilla.org/ru/docs/Web/API/HTMLMediaElement/captureStream), который умеет брать стрим из audio/video тегов. Дальше относительно просто — через peer.js гоняем стрим клиентам, получаем штуку, умеющую стримить все форматы, поддерживаемые браузером.
Дальше берем все тот же youtube-dl(или аналоги) под ноду, тащим ссылку на стрим — готово.
Единственный минус — нужен актуальный браузер. Из плюсов — минимум кода, максимум эффективности.
P.S. Кстати говоря, captureStream умеет еще и снимать данные с канваса, что позволяет делать штуки вроде стрима WebGL игр.
У youtube-dl есть параметр -g, --get-url отдающий url, который отлично можно скормить ffmpeg напрямую.
ffmpeg -i youtube-dl -g ...
...
Тянем ролик с YouTube и раздаем по WebRTC в реалтайме