Я не понимаю, как настроить сервер Apache2 для сохранения входящего видеопотока HLS в плейлисте (файл .m3u8
расширение). Эта проблема возникает, когда мне нужно записать в список воспроизведения любой поток HLS, который создается этим кодом Python (мне нужно создать тихое простое приложение для видеонаблюдения, выбранная среда - Flask):
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('rtsp://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 = 10, hls_time = 60)
hls_stream.representations(_480p)
hls_stream.output('http://100.79.203.22/teststreamer/scandinavia.m3u8')
Вот http://100.79.203.22/teststreamer/scandinavia.m3u8
выглядит как (я считаю, что это правильный путь, IP-адрес - временное временное решение) путь к плейлисту scandinavia.m3u8
Я создал себя внутри корневого каталога Apache2 (в моем случае это /var/www/html
). Итак, плейлист просто вложен в teststreamer
который принадлежит корневому каталогу. Есть разделы файла конфигурации Apache2, которые имеют значение для настройки хранилища файлов:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Allow,Deny
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Allow,Deny
Allow from all
Header set Access-Control-Allow-Origin "*"
Require all granted
</Directory>
Остальные строки содержат те же настройки, которые были частью конфигурации с момента окончания установки сервера (моя ОС - Ubuntu 18.04). Итак, я работаю с некоторыми интерфейсами, поэтому конфигурации включают определенные функции только для включения операций CORS. Существенным здесь является факт неожиданного сбоя при запуске программы Python: выходной поток не достигает списка воспроизведения на сервере Apache, скорее, он потрясающим образом сохраняется в папке проекта Python. http
подкаталог появляется сначала внутри этой папки, затем http
становится родительским каталогом для 100.79.203.22
(да, это имя еще одной странной папки, появившейся в результате выполнения программы), то 100.79.203.22
становится родителем для teststreamer
, Ну наконец то scandinavia.m3u8
занимает емкость внутри teststreamer
.
Честно говоря, я полагаю, что есть какие-то неправильные или отсутствующие настройки на основе файла конфигурации Apache. Конечно, я разрешил записывать внешние данные в плейлист, а также весь корневой каталог сервера. Но любой поток не попадает в пункт назначения, почему на самом деле? Бьюсь довольно долго, идей как правильно поставить стрим на сервер нет.