Преобразование потока HLS на сервер nginx без дополнительной перекодировки - PullRequest
0 голосов
/ 27 мая 2020

Я застрял, борясь с проблемой потоковой передачи HLS сервером nginx. Давайте посмотрим на код Python, который я использую для преобразования из RTMP в HLS live stream:

import ffmpeg_streaming
from ffmpeg_streaming import Formats, Bitrate, Representation, Size

import sys

def monitor(ffmpeg, duration, time_):
    per = round(time_ / duration * 100)
    sys.stdout.write("\rTranscoding...(%s%%) [%s%s]" % (per, '#' * per, '-' * (100 - per)))
    sys.stdout.flush()

video = ffmpeg_streaming.input('rtmp://freja.hiof.no:1935/rtplive/_definst_/hessdalen03.stream')

_360p = Representation(Size(640, 360), Bitrate(276 * 1024, 128 * 1024))
_480p = Representation(Size(854, 480), Bitrate(750 * 1024, 192 * 1024))
_720p = Representation(Size(1280, 720), Bitrate(2048 * 1024, 320 * 1024))

hls_stream = video.hls(Formats.h264(), hls_list_size = 1, hls_time = 60)
hls_stream.representations(_480p)
hls_stream.output('/var/livestream/livestream.m3u8')

Этот материал отлично работает для помещения файлов live stream в список воспроизведения, содержащийся в локальном каталоге. Теперь я собираюсь подталкивать Python выходы к m3u8 внутри словаря, который существует на nginx, а не просто в моей локальной файловой системе (моя ОС - Ubuntu 18.04). Это случай, потому что я совершенно не понимаю, как поместить в nginx любой поток, который уже совместим с HLS. Везде в Inte rnet я нахожу учебные пособия по преобразованию потока RTMP в HLS с использованием конфигураций nginx (например, здесь доступно много соответствующей информации link1 , link2 , ссылка3 ). Однако они объясняют, как обрабатывать преобразование потока, поскольку мне нужно перенести уже совместимый поток HLS в файл m3u8, хранящийся в nginx. Знаете ли вы, как перевести вывод кода Python напрямую в список воспроизведения nginx, пропуская дополнительное преобразование? Я новичок в ie в потоковой передаче видео, любое вполне выполнимое решение будет оценено по достоинству. Предположительно, вы поделитесь своими советами, как запустить потоковую передачу на Python и медиа-сервере (например, на nginx) более подходящим и эффективным образом.

...