Настройка: raspivid -> ffmpeg -> rtmp -> hls [ts / m3u8] -> VideoJS
Настройка NGINX RTMP HLS очень проста, поэтому я не буду этого делать. Я использую hls_fragment размером 250 мс и hls_playlist 3 с. Не стесняйтесь использовать мой сервер NGINX RTMP HLS. Просто скопируйте и вставьте именно то, что находится в разделе rtmp, но измените 'stream_name' на что-то уникальное. Аналогично, измените это в VideoJS, чтобы вы могли воспроизвести его на своей веб-странице. Я не гарантирую, что приложение 2a будет существовать вечно, но я планирую, что оно будет моим тестовым приложением некоторое время.
- Только видео, A raspivid -n -t 0 -h 480 -w 854 -fps 24 -b 1536000 -o - | ffmpeg -i - -c: v copy -f flv 'rtmp: //streaming.sensored.solutions/2a/stream_name' Плюсы: Самый простой, качественный, без буферизации. Минусы: ~ 10 с задержкой
- Только видео, B raspivid -n -t 0 -h 480 -w 854 -fps 15 -b 1080000 -o - | ffmpeg -i - -c: v copy -f flv 'rtmp: //streaming.sensored.solutions/2a/stream_name' Плюсы: низкая задержка, менее 5 с. Минусы: буферизация, качество
- Видео и аудио [USB через Sabrent и дешевый 3,5-миллиметровый микрофон] raspivid -n -t 0 -h 480 -w 854 -fps 25 -b 2000000 -o - | ffmpeg -thread_queue_size 512 -i - -itsoffset 00: 00: 05.22 -f alsa -ac 1 -i hw: 0,0 -map 0: 0 -карта 1: 0 -c: aac -c: v копия -f flv 'rtmp: //streaming.sensored.solutions/2a/stream_name' Плюсы: качество, без буферизации, синхронизированное аудио / видео. Минусы: высокий битрейт [не подходит для нескольких устройств с одинаковой пропускной способностью], задержка ~ 12 с - 15 с
VideoJS:
<!--Note, you should including the following in the HEAD of your HTML file: <link href="http://videojs.github.io/videojs-contrib-hls/node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> --> <div class="container" id="videojs_container"> <section class="starter-template"> <video id=video-js-player width=854 height=480 class="video-js vjs-default-skin" controls autoplay="true" data-setup="{}" preload="auto"> <source src = "http://streaming.sensored.solutions/2a/stream_name/index.m3u8" type = "application/x-mpegURL"> </video> </section> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <script src="http://videojs.github.io/videojs-contrib-hls/node_modules/bootstrap/dist/js/bootstrap.min.js"></script> <script src="http://videojs.github.io/videojs-contrib-hls/js/ie10-viewport-bug-workaround.js"></script> <link href="//vjs.zencdn.net/5.4/video-js.css" rel="stylesheet"> <script src="//vjs.zencdn.net/5.4/video.js"></script> <script src="http://videojs.github.io/videojs-contrib-hls/node_modules/videojs-contrib-hls/dist/videojs.hls.min.js"></script>