Возможен ли такой сценарий?

Я порву, попробую с моим потоком, что ли. уже минут 20 крутится не прерываясь - с Вашим потоком точно всё ок
 
Настройки не меняли.
На сервер опубликовали 1 поток по WebRTC.
Из консоли забрали 1000.
Скриншоты в аттаче.
Значит что-то не так с моим локальным компом? Или я как-то не так засасываю потоки? Пробовали с ffmpeg как у меня? Впрочем, с вебки я тоже пробовал - результат тот же.
 
Можете остановить плиз? Кажется, у меня всё как не работало так и не работает... Но не могу протестить - машины загружены слишком
 

Max

Administrator
Staff member
С ffmpeg пока не проверяли.
Есть предположение что он может отваливаться по RTMP Keep Alive через 1 минуту.
Если так, тогда включение настройки в server.properties
Code:
#Оставляем только websocket, убираем rtmp
keep_alive.enabled=websocket
должно помочь
 

Max

Administrator
Staff member
Чтобы остановить, перезагрузите WCS сервер.
 
Нет. Через минуту обрывается. И с вебки точно так же. Что-то всё же не так, что-то мы по-разному делаем.

https://codeda.com/screen2.mov

Посмотрите плиз внимательно запись с экрана. Не могу увидеть что я могу делать не так. Но у меня через минуту обрывается. И с вебкой точно так же.

Команда ffmpeg из скринкаста есть в history на test1, но на всякий случай вот ещё раз
ffmpeg -re -f lavfi -i "movie=filename=jedi.mov:loop=0, setpts=N/(FRAME_RATE*TB)" -an -s 1280x720 -r 15 -f rawvideo -pix_fmt yuv420p - | ffmpeg -thread_queue_size 512 -an -f rawvideo -pix_fmt yuv420p -r 15 -s 1280x720 -i - -r 15 -c:v libx264 -tune zerolatency -profile:v baseline -g 10 -b:v 2M -s 1280x720 -an -f flv rtmp://127.0.0.1/live/test_video
Есть предположение что он может отваливаться по RTMP Keep Alive через 1 минуту.
Нет, он не отваливается. Поток от ffmpeg продолжает оставаться живым на том сервере на который шлётся и его можно проиграть через player на том же сервере. Отваливаются только pulled потоки.

Эта проблема у нас блокирует применение WCS в продакшене...
 
Last edited:
ffmpeg -re -i ./replay.mp4 -r 15 -c:v libx264 -tune zerolatency -profile:v baseline -g 10 -b:v 2M -s 1280x720 -an -f flv rtmp://127.0.0.1/live/test_video
На всякий случай взял видео подлиннее (5 минут) и запустил без lavfi с зацикливанием - мало ли что оно с таймкодами делает. Точно так же. Через ровно 1 минуту отпадает. После отпадания запустил на исходном сервере плеер - поток прекрасно играется. То есть отпали только pull потоки.
 

Max

Administrator
Staff member
Снимите свой стрим, проверим сейчас сами через ffmpeg.
 
Попробовал сам с 2-way streaming, возможно проблема не повторилась. Прервал тестирование чтоб Вам не мешать.
 
Всё работает. Чудеса. Запускаю сам второй такой же и проверяю заработает ли у меня.

Запустил 10 штук ANBBB. Жду. Команду ту же взял, только имя потока сменил.

ffmpeg -re -i BigBuckBunny.mp4 -c:v copy -preset fast -c:a copy -f flv rtmp://127.0.0.1:1935/live/ANBBB
Гм. работает. Копаю глубже.
 

Max

Administrator
Staff member
Стримим через ffmpeg:
Code:
/usr/src# ffmpeg -re -i BigBuckBunny.mp4 -c:v copy -preset fast -c:a copy -f flv "rtmp://127.0.0.1:1935/live/BigBuckBunny"
В консоли выбираем ноду, которая будет забирать стрим, в нашем случае это fp-хост. Делаем pull stream.
 

Attachments

Да, я так и делал. Свожу постепенно ffmpeg команду Вашу и мою... может в кодеке беда, хз. Но да, точно как у Вас - у меня сработало. Проблема в том что моё видео в реальной жизни генерится из сырого, значит -c:v copy и c:a copy я юзать не могу, нужно знать конкретные работающие настройки.
 

Max

Administrator
Staff member
Запустите свой поток снова как
Code:
ffmpeg -re -f lavfi -i "movie=filename=jedi.mov:loop=0, setpts=N/(FRAME_RATE*TB)" -an -s 1280x720 -r 15 -f rawvideo -pix_fmt yuv420p - | ffmpeg -thread_queue_size 512 -an -f rawvideo -pix_fmt yuv420p -r 15 -s 1280x720 -i - -r 15 -c:v libx264 -tune zerolatency -profile:v baseline -g 10 -b:v 2M -s 1280x720 -an -f flv rtmp://127.0.0.1/live/test_video
Посмотрим в логах, что приходит по rtmp
 
Ларчик открывался не просто, а мега просто. В потоке должен быть звук. Без звука - ломается, с наличием звука (хотя бы из /dev/zero) - всё отлично.
 
ffmpeg -re -f lavfi -i "movie=filename=jedi.mov:loop=0, setpts=N/(FRAME_RATE*TB)" -an -s 1280x720 -r 15 -f rawvideo -pix_fmt yuv420p - | ffmpeg -thread_queue_size 512 -an -f rawvideo -pix_fmt yuv420p -r 15 -s 1280x720 -i - -vn -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -r 15 -c:v libx264 -tune zerolatency -profile:v baseline -g 60 -b:v 960k -s 1280x720 -c:a aac -b:a 64k -f flv rtmp://127.0.0.1/live/test_video
 
Last edited:
Сервера снёс, спасибо за помощь, как водится ответ оказался совсем рядом. Вебку я тоже без звука юзал.
 
Вопрос - как сообщалось, что-то подобное было в работе с Вашей стороны - функция позволяющая микшировать несколько потоков в один композитный поток, прямо на сервере. Доделан ли этот функционал? Где его можно посмотреть? Есть ли доки? Спасибо!
 
Top