На данный момент мое решение работает, но только как RTMP, я могу отлично смотреть мой поток, используя URL:
rtmp://X.X.X.X:1935/show/name
Но проблема в том, что мой LG Smart Tv, который использует WebOS, не поддерживаетRTMP и я бы очень хотел сыграть там мой поток.Единственное решение, которое я вижу сейчас, - это использование HLS.С HLS все тоже отлично работает, но мне нужно выполнить мою команду ffmpeg перед тем, как открыть поток HLS на ТВ, иначе он не создаст файлы, необходимые для отображения потока на моем телевизоре.
Поэтому моя цель состоит в том, чтобыобслуживать поток как HLS без необходимости запускать конечную точку RTMP или FFMPEG вручную.
Я действительно борюсь с этим, тратя 3 дня, пытаясь заставить его работать: (
http
{
location /hls
{
# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /mnt/;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 4000;
buflen 5s;
application show {
live on;
exec_pull ffmpeg -re -i http://stream-coming.com/$name.ts -c:v libx264 -preset faster -pix_fmt yuv420p -c:a aac -f flv rtmp://localhost/show/$name;
# Turn on HLS
hls on;
hls_path /mnt/hls/;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
deny play all;
}
}
}
Спасибо за ваше время;)