Транскодирование потока с cdn.

127 views
Skip to first unread message

Пригода Роман

unread,
Aug 28, 2017, 6:48:02 AM8/28/17
to nginx-rtmp-ru
Здравствуйте. Спасибо огромное за такой замечательный продукт. Вопрос, наверное, глупый, но не смог найти ответ. Поэтому прошу помощи.
Необходимо принять  rtmp поток с сdn и транскодировать в 2 качества. После отправить на cdn. То есть провести опреацию транскодирования на nginx, а не на cdn.
Перекодирования начинается только после первого запроса с локального сервера rtmp://localhost/pull/mystream, все верно, как и описано в описании pull. Как нужно изменить код, чтобы транскодирование начиналось с момента публикации потока rtmp://cdn.example/cdne_hq.sdp ?
 

Пример кода:


rtmp {
        server {
                listen 1935;
                chunk_size 4096;


application pull {
    live on;
 pull rtmp://cdn.example/cdne_hq.sdp;

 exec ffmpeg -i rtmp://cdn.example/cdn_hq.sdp  -c:v libx264 -profile:v main -b:v 1500K -s 850x480 -c:a aac -b:a 128k  -f flv  rtmp://localhost/pull480p/$name
 exec ffmpeg -i rtmp://cdn.example/cdn_hq.sdp  -c:v libx264 -profile:v main -b:v 750K -s 640x360 -c:a aac  -b:a 128k  -f flv  rtmp://localhost/pull360p/$name

            }

 application pull480p {
                    live on;
                    record off;
push rtmp://cdn.example/cdne_sq.sdp?auth=12345qwerty;
        }

   application pull360p {
                    live on;
                    record off;
push rtmp://cdn.example/cdne_lq.sdp?auth=12345qwerty;
        }
}
}


Message has been deleted

n...@sbtg.ru

unread,
Sep 13, 2017, 12:43:54 AM9/13/17
to nginx-rtmp-ru
Pull нужно запросить, чтобы он произошел. В данном случае он просто не исполняется. Exec вообще непонятно почему так у вас... В общем можно много во что указать, но очень долго...
Решение на самом деле очень простое: один раз запустить ffmpeg в любой среде, и проследить, чтобы он не падал) не нужен тут nginx.
Если по человечески - демон ffprobe, пингующий поток с cdn, запускающий ffmpeg.

Если хочется запускать изнутри nginx:

rtmp {
    exec_static -i *адресс cdn+имяпотока* -c:v libx264 -profile:v main -b:v 1500K -s 850x480 -c:a aac -b:a 128k  -f flv *входящий адресс cdn+имяпотока_480* -c:v libx264 -profile:v main -b:v 750K -s 640x360 -c:a aac  -b:a 128k  -f flv *входящий адресс cdn+имяпотока_360*
}

Вместо *блаблабла* подставить реальные сущности.
Все, будет висеть демоном и выполнять задачу
Reply all
Reply to author
Forward
0 new messages