@ewowko1241

Ffmpeg nginx транскодирование .bat не слушает порт?

Приветствую. Не знаю правильно выбрал ветку или нет. Но суть вопроса такова. Есть виндовс 10. Установлен nginx+ffmpeg
Поток отправляется в nginx и делится на два потока. Один поток уходит на одну стрим площадку в битрейде 25мбит. Второй поток отправляется ffmpeg,у на транскодирование с послед вещанием в 7мбит на другую стрим площадку. Что бы запустить транскодирование имеется .bat файл. Его запускаешь и он подхватывает поток и делает с ним то что нужно. Проблема такая что нужно запускать .bat только когда есть поток. Если потока нет, после запуска секунд 20 ждет поток и вырубается. Нужно сделать чтобы он ждал поток всегда и как дождется запускал транскодирование. Так как Удаленно нет вохможности каждый раз заходить и запускать в ручную батник
Внутрянка батника
bin\ffmpeg -i rtmp://127.0.0.1/restreamdima/ -vcodec libx264 -g 60 -preset medium -b:v 6500k -maxrate 6500k -bufsize 6500k -s 1600x900 -x264opts nal-hrd=cbr:force-cfr=1:keyint=60 -sws_flags lanczos -acodec copy -r 60 -f flv rtmp://127.0.0.1/transcodedima
Вот ошибка если не может увидеть поток
5e8ee69573d92368944785.png
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
"Поток" - это слишком абстрактно. Есть файлы, процессы, открытые порты и т.п. - объекты, которые можно проверить существуют они или нет. Вам нужно ваш поток ассоциировать с каким-то объектом, существование которого можно проверить в батнике. Тогда вы можете в батнике в вечном цикле определять существует ли объект, затем запускать ваш ffmpeg.

Другой вариант. То что генерирует ваш первоначальный поток должно запустить и батник.

Еще вариант: раз ffmpeg вываливается с ошибкой, если нет потока, то можно просто загнать запуск ffmpeg в вечный цикл и пусть он сам проверяет существование потока. Когда вывалится в очередной раз, батник его снова запустит на следующей итерации цикла.
Ответ написан
Комментировать
@ewowko1241 Автор вопроса
Решил ответ на вопрос. Если кому интересно то вот -use_wallclock_as_timestamps 1
Или это новый ffmpeg скаченный теперь так работает ) не тестил без команды ) сразу два действия сделал ) и так оставил
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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