Если бы вы могли пролить свет для меня, я был бы признателен.
Итак, в основном я вытягиваю поток из своего кодировщика, и он работает, я получаю вывод m3u8, и он доступен, но видео HLS дергается, и я теряю кадры. пьеса не является непрерывной.
2017/06/12 16:04:09 [error] 1281#0: *58 hls: force fragment split: 10.002 sec
(Редактировать после извлечения из RTSP...) 13.06.2017 10:48:55 [ошибка] 1281#0: *763 hls: принудительное разделение фрагмента: 10,416 сек, , клиент: XX, сервер: 0.0.0.0:1935
Вот мой файл конфигурации:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
# RTMP configuration
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;
application live {
live on;
exec_pull ffmpeg -re -i rtsp://xxx/xxx -c copy -f flv rtmp://xxx:1935/live/xxx;
exec_pull ffmpeg -re -i rtsp://xxx:8080/xxx -c copy -f flv rtmp://xxx:1935/live/xxx;
# Turn on HLS
hls on;
hls_path /tmp/hls/;
hls_fragment 3;
hls_playlist_length 60;
}
}
}
http {
sendfile off;
tcp_nopush on;
directio 512;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
# rtmp statistics
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
# under linux you could use /var/user/www for example
root html;
}
location / {
# 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,Content-Range';
add_header 'Access-Control-Allow-Headers' 'Range';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'Range';
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/dash+xml mpd;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp/;
}
}
}
pull
предназначен для потоков RTMP, если документация соответствует требованиям -свидание. Вы используете поток RTMPT в качестве входных данных? - person aergistal   schedule 13.06.2017ffmpeg
в CLI, чтобы узнать, есть ли сообщения об ошибках для этих источников. Что касается ошибки сообщения, вы копируете исходную кодировку, что означает, что вы используете существующие ключевые кадры, которые могут быть разделены не точно на 3 секунды. - person aergistal   schedule 14.06.2017