Я пытаюсь преобразовать поток RMTP в HLS, используя ffmpeg на сервере nginx. Это моя основная конфигурация nginx.Если использовать push rtmp: // localhost / show / вместо exec для сохранения данных, но exec ничего не делает.
Я вижу поток с помощью ffplay,
error -> RTMP_ReadPacket, не удалось прочитать RTMP-пакетheader
rtmp: // localhost / live / key: при обработке ввода обнаружены неверные данные
Для проверки я использую OBS и ffplay
#user root;
worker_processes auto;
events {
worker_connections 1024;
}
# RTMP configuration
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;
# This application is to accept incoming stream
application live {
live on; # Allows live input
# Once receive stream, transcode for adaptive streaming
exec ffmpeg -i rtmp://localhost/$app/$name -async 1 -vsync -1 -c:v libx264 -c:a libvo_aacenc -b:v 256k -b:a 32k -vf "scale=480:trunc(ow/a/2)*2" -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost/show/$name_low 2>>/tmp/ffmpeg.error;
}
# This application is for splitting the stream into HLS fragments
application show {
live on; # Allows live input from above
hls on; # Enable HTTP Live Streaming
hls_path /mnt/hls/;
# Instruct clients to adjust resolution according to bandwidth
hls_variant _low BANDWIDTH=288000; # Low bitrate, sub-SD resolution
}
}
}