LINUX.ORG.RU
ФорумAdmin

nginx трансляция потоков и одновременная запись

 , ,


0

1

Приветствую, коллеги!

Проблема следующая. Есть nginx сервер, который принимает видео-потоки. Далее их можно получить с него по rtmp, либо hls на веб. Когда попытались записать, ничего не вышло. Он либо дает hls, либо запись. При этом в некоторых случаях rtmp перестает работать. Прилагаю последний вариант конфига. Есть подозрение что ffmpeg не совсем делает правильно кодирование:

server {
    listen 1935;
    publish_time_fix off;
    timeout 2s;
    meta copy;
    allow play all;
    #chunk_size 512;

    #interleave off;

    wait_key off;
    wait_video off;

    idle_streams on;

    publish_notify on;
    play_restart on;


    application live {
        live on;

# record all;
# record_unique off;
# record_path /mnt/jet;
# record_suffix _%d%m%Y_%H%M%S.flv;
# record_max_size 10M;

        hls on;
        hls_nested on;
        hls_path /srv/video/hls;
        hls_fragment 3s;
        exec_static ffmpeg -i rtmp://localhost:1935/live/$name -hwaccel cuvid -c:v h264_cuvid -c:v h264_nvenc -preset slow -f flv rtmp://localhost:1935/record/$name;
		# hls_playlist_length 9s;
    }

    application record {
        live on;
        record all;
        record_path /path;
        record_unique off;
        record_suffix _%d%m%Y_%H%M%S.flv;
        record_max_size 10M;
   }

}



Последнее исправление: job_maker (всего исправлений: 1)

exec_static не поддерживает $name. Должно быть просто exec. А почему вы сразу не записываете с помощью ffmpeg?

goingUp ★★★★★
()
Ответ на: комментарий от goingUp

команду подправлю, ок. спасибо!
имеется ввиду скрипт на bash с ffmpeg? а он на трансляцию не повлияет? hls не испортит?

job_maker
() автор топика
Ответ на: комментарий от goingUp

Сделал запись сразу в файл.

exec /usr/local/bin/ffmpeg -t 00:05:00 -i rtmp://localhost:1935/live/$name -c copy -f flv rtmp://localhost:1935/live/$name-%Y%m%d_%H%M%S.flv 2>>/var/log/ffmpeg-$name.log;

как можно timestamp добавить к создаваемым файлам в таком случае? Если перенести в скрипт bash, то тогда непонятно как брать информацию о камерах, как передать $name.

job_maker
() автор топика
Ответ на: комментарий от job_maker

Решил вопрос. $1 надо было в скрипте написать вместо переменной.

job_maker
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.