Как сделать трансляцию на основе hls потока из periscope?

Sergei

Member
Как сделать трансляцию на основе hls потока из periscope?
hls плеер выдает ошибку: "The media could not be loaded, either because the server or network failed or because the format is not supported."
 

Max

Administrator
Staff member
Такой источник потока не поддерживается.
WCS может принять поток с веб-камеры и отобразить его по HLS.
Либо может принять поток с веб-камеры и перенаправить на periscope по RTMP.
Забрать по HLS не может.
 

Sergei

Member
А можно получить поток используя ffmpeg и передать его по rtmp на ваш сервер? Если можно, то объясните пожалуйсто где можно запустить rtmp на вашем сервере?
 

Max

Administrator
Staff member
А можно получить поток используя ffmpeg и передать его по rtmp на ваш сервер?
Да, так можно сделать, если знаете как захватить с помощью ffmpeg.
Если можно, то объясните пожалуйсто где можно запустить rtmp на вашем сервере?
Он запущен из-коробки. Слушает порт 1935.
Протестировать можно здесь:
https://wcs5-eu.flashphoner.com/demo2/flash-streaming
Это флэшка, которая соединяется с сервером по RTMP.
flash-rtmp.jpg


В этой теме обсуждали стримиг с Youtube на WCS сервер через FFMPEG
Пример команды для ffmpeg:
Code:
ffmpeg -re -i /tmp/VIDEO2findingnews.mp4 -preset ultrafast -acodec aac -strict -2 -vcodec libx264 -f flv rtmp://wcs5-eu.flashphoner.com:1935/live/stream1
 

Sergei

Member
Да, так можно сделать, если знаете как захватить с помощью ffmpeg.

Он запущен из-коробки. Слушает порт 1935.
Протестировать можно здесь:
https://wcs5-eu.flashphoner.com/demo2/flash-streaming
Это флэшка, которая соединяется с сервером по RTMP.
View attachment 256

В этой теме обсуждали стримиг с Youtube на WCS сервер через FFMPEG
Пример команды для ffmpeg:
Code:
ffmpeg -re -i /tmp/VIDEO2findingnews.mp4 -preset ultrafast -acodec aac -strict -2 -vcodec libx264 -f flv rtmp://wcs5-eu.flashphoner.com:1935/live/stream1
А можно ли как то транслировать поток полученный FFMPEG через webRTC плеер?
 

Max

Administrator
Staff member
Flash приложение было приведено для примера, чтобы протестировать и убедиться, что WCS сервер принимает RTMP видеопоток.
После того, как RTMP поток принят, его можно играть любым плеером: WebRTC, Flash, Websocket, HLS.
Пример WebRTC-плеера здесь:
https://wcs5-eu.flashphoner.com/demo2/player
Если WebRTC не поддерживается, он переключается на Flash
Если Flash не поддерживается, он переключается на Websocket
А можно ли как то транслировать поток полученный FFMPEG через webRTC плеер?
Да
Например, если с ffmpeg отправили поток с именем 555, в WebRTC плеере он будет отображаться так:
player-webrtc.jpg
 

Sergei

Member
Last edited:

Max

Administrator
Staff member
Таким способом мы не пробовали захватывать
Выше я давал ссылку на тему, где поток захватывается с YouTube.
1. Поток захватывается библиотекой youtube-dl и пишется в файловую систему:
https://rg3.github.io/youtube-dl/
Скрипт на python:
Code:
self._process = subprocess.Popen(('youtube-dl', '--no-color', '--no-cache-dir', '--no-progress','-o', '-', '-f', '22/18', self.url, '--reject-title', self.stream_id),stdout=subprocess.PIPE)
2. Второй процесс ffmpeg читает данные из файловой системы и заворачивает в RTMP
Code:
self._process2 = subprocess.Popen(('ffmpeg', '-re', '-i', '-', '-c:v', 'copy', '-acodec', 'copy', '-threads','1', '-f', 'flv',
'-rtmp_conn','O:1 NS:appKey:flashStreamingApp NO:custom:O:1 NS:auth:' + self.auth + ' NS:stream:' + self.stream_id + ' O:0 O:0',self.destination + '/flashStreamingApp/' + self.stream_id), stdin=self._process.stdout)
WCS сервер принимает поток с такими настройками (пример):
Code:
ffmpeg -re -i /tmp/VIDEO2findingnews.mp4 -preset ultrafast -acodec aac -strict -2 -vcodec libx264 -f flv rtmp://wcs5-eu.flashphoner.com:1935/live/stream1
Попробуем также вашим способом. Если будут результаты, отпишу.
 

Max

Administrator
Staff member
Если попробовать подключиться к HLS стриму напрямую с помощью ffmpeg, то отдает Protocol not found.
До этого не тестировали захват видео по HLS с помощью ffmpeg. Возможно нужно собирать ffmpeg со специальными ключами чтобы заработало.
Code:
 ffprobe http://prod-video-eu-central-1.pscp.tv/FDXEsQbjv6giEpPLc6VG4JoPM8qdp_wPVbrDeYqzZf20Q1_qqTol5Yk-79oDoY-QLPe074CCOFMUNJgUlFkSaA.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsInZlcnNpb24iOiIyIn0.eyJBbGxvd2VkUHJvdG9jb2xzIjpbImhscyJdLCJCcm9hZGNhc3RJZCI6IjF5TnhhcVBSUVdqeGoiLCJHcmFudFR5cGUiOiJyZWFkIiwiR3JhbnRlZEF0IjoxNDk2MTI5NjI3LCJHcmFudGVkVG8iOiJQVUJMSUMiLCJTdHJlYW1OYW1lIjoiRkRYRXNRYmp2NmdpRXBQTGM2Vkc0Sm9QTThxZHBfd1BWYnJEZVlxelpmMjBRMV9xcVRvbDVZay03OW9Eb1ktUUxQZTA3NENDT0ZNVU5KZ1VsRmtTYUEiLCJleHAiOjE0OTg4MDgwMjd9.G90o2Tp-fU947QUWSAfvZSebuBDP5kJYyYyg8Kgya1s.NicMZfQ0TUh9B_RZ-bq4GXwBFh3FOLQHozdDAOzhptw/live/eu-central-1/playlist.m3u8
ffprobe version 3.2.3 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-11)
  configuration: --enable-shared --disable-logging --enable-gpl --enable-pthreads --enable-libx264 --enable-librtmp --disable-yasm
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
http://prod-video-eu-central-1.pscp.tv/FDXEsQbjv6giEpPLc6VG4JoPM8qdp_wPVbrDeYqzZf20Q1_qqTol5Yk-79oDoY-QLPe074CCOFMUNJgUlFkSaA.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsInZlcnNpb24iOiIyIn0.eyJBbGxvd2VkUHJvdG9jb2xzIjpbImhscyJdLCJCcm9hZGNhc3RJZCI6IjF5TnhhcVBSUVdqeGoiLCJHcmFudFR5cGUiOiJyZWFkIiwiR3JhbnRlZEF0IjoxNDk2MTI5NjI3LCJHcmFudGVkVG8iOiJQVUJMSUMiLCJTdHJlYW1OYW1lIjoiRkRYRXNRYmp2NmdpRXBQTGM2Vkc0Sm9QTThxZHBfd1BWYnJEZVlxelpmMjBRMV9xcVRvbDVZay03OW9Eb1ktUUxQZTA3NENDT0ZNVU5KZ1VsRmtTYUEiLCJleHAiOjE0OTg4MDgwMjd9.G90o2Tp-fU947QUWSAfvZSebuBDP5kJYyYyg8Kgya1s.NicMZfQ0TUh9B_RZ-bq4GXwBFh3FOLQHozdDAOzhptw/live/eu-central-1/playlist.m3u8: Protocol not found
 
Top