Linux活用レシピ > 家電の制作 > RaspberryPiでライブストリーミング環境を構成 | |
このページでは、「RaspberryPi」と、それで動作するOS「Raspbian」で、安価にリアルタイム動画を配信する環境(ライブストリーミング環境)を構成するレシピを紹介します。 |
|
└ 説明 準備 ├ ハードウェア ├ Raspbian日本語 ├ 配信サーバ └ 無線設定 動画配信 ├ ライブ配信 ├ YouTubeLive └ LiveTool 製品 このレシピで利用した「ラズベリーパイ(Raspberry Pi)OS Raspbian 日本語版(LibreOffice付) 16G」\1900 は以下の販売チャネルで。 |
はじめに
◆RaspberryPiを使ったライブストリーミング環境の製作◆ |
pi@raspberrypi:~ $ vi ~/scripts/streaming-start-youtube.sh[ENTER] |
#!/bin/bash NUM=`ps aux | grep ffmpeg | grep -v grep | wc -l` if [ $NUM -gt 0 ]; then echo "Already running." exit fi sudo ffmpeg \ -f alsa -thread_queue_size 8192 \ -i plughw:1 -f v4l2 \ -thread_queue_size 8192 \ -input_format yuyv422 -video_size 640x480 \ -framerate 30 -i /dev/video0 -c:v h264_omx \ -b:v 768k -bufsize 768k -vsync 1 -g 16 \ -c:a aac -b:a 128k -ar 44100 -af "volume=5dB" \ -f flv rtmp://YOUR_SERVER_URL/YOUR_KEY > /dev/null 2>&1 </dev/null & |
#!/bin/bash NUM=`ps aux | grep ffmpeg | grep -v grep | wc -l` if [ $NUM -gt 0 ]; then echo "Already running." exit fi ffmpeg \ -f alsa -thread_queue_size 8192 \ -i plughw:1 -f v4l2 \ -thread_queue_size 8192 \ -input_format yuyv422 -video_size 640x480 \ -framerate 30 -i /dev/video0 -c:v h264_omx \ -b:v 768k -bufsize 768k -vsync 1 -g 16 \ -c:a aac -b:a 128k -ar 44100 -af "volume=5dB" \ -f flv rtmp://YOUR_SERVER_URL/YOUR_KEY > /dev/null 2>&1 </dev/null & |
pi@raspberrypi:~ $ v4l2-ctl -d /dev/video0 --list-formats-ext[ENTER] |
ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'YUYV' (YUYV 4:2:2) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 160x120 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 176x144 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 320x240 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 352x288 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 800x600 Interval: Discrete 0.100s (10.000 fps) Size: Discrete 1280x720 Interval: Discrete 0.125s (8.000 fps) Size: Discrete 1920x1080 Interval: Discrete 0.200s (5.000 fps) [1]: 'MJPG' (Motion-JPEG, compressed) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 160x120 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 176x144 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 320x240 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 352x288 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 800x600 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 1280x720 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 1920x1080 Interval: Discrete 0.033s (30.000 fps) |
#!/bin/bash NUM=`ps aux | grep ffmpeg | grep -v grep | wc -l` if [ $NUM -gt 0 ]; then echo "Already running." exit fi ffmpeg \ -re -f concat -thread_queue_size 8192 \ -safe 0 -i <(for file in ~/Music/*.mp3 ; \ do echo file "$file" ; done) \ -f v4l2 -thread_queue_size 8192 \ -input_format yuyv422 -video_size 640x480 \ -framerate 30 -i /dev/video0 -c:v h264_omx \ -b:v 768k -bufsize 768k -vsync 1 -g 16 \ -c:a aac -b:a 128k -ar 44100 -af "volume=5dB" \ -f flv rtmp://YOUR_SERVER_URL/YOUR_KEY > /dev/null 2>&1 </dev/null & |
#!/bin/bash NUM=`ps aux | grep ffmpeg | grep -v grep | wc -l` if [ $NUM -gt 0 ]; then echo "Already running." exit fi ffmpeg \ -re -f concat -thread_queue_size 8192 \ -safe 0 -i <(for i in {1..10};do for file in ~/Music/*.mp3 ; \ do echo file "$file" ; done; done) \ -f v4l2 -thread_queue_size 8192 \ -input_format yuyv422 -video_size 640x480 \ -framerate 30 -i /dev/video0 -c:v h264_omx \ -b:v 768k -bufsize 768k -vsync 1 -g 16 \ -c:a aac -b:a 128k -ar 44100 -af "volume=5dB" \ -f flv rtmp://YOUR_SERVER_URL/YOUR_KEY > /dev/null 2>&1 </dev/null & |
#!/bin/bash NUM=`ps aux | grep ffmpeg | grep -v grep | wc -l` if [ $NUM -gt 0 ]; then echo "Already running." exit fi ffmpeg \ -re -f concat -thread_queue_size 8192 \ -safe 0 -i <(for i in {1..10};do for file in \ `ls ~/Music/*.mp3|sort -R` ; \ do echo file "$file" ; done; done) \ -f v4l2 -thread_queue_size 8192 \ -input_format yuyv422 -video_size 640x480 \ -framerate 30 -i /dev/video0 -c:v h264_omx \ -b:v 768k -bufsize 768k -vsync 1 -g 16 \ -c:a aac -b:a 128k -ar 44100 -af "volume=5dB" \ -f flv rtmp://YOUR_SERVER_URL/YOUR_KEY > /dev/null 2>&1 </dev/null & |
pi@raspberrypi:~ $ vi ~/scripts/streaming-stop-youtube.sh[ENTER] |
#!/bin/bash sudo killall -INT ffmpeg |
pi@raspberrypi:~ $ chmod +x ~/scripts/streaming-*-youtube.sh[ENTER] |
pi@raspberrypi:~ $ ~/scripts/streaming-start-youtube.sh[ENTER] pi@raspberrypi:~ $ |
pi@raspberrypi:~ $ ~/scripts/streaming-stop-youtube.sh[ENTER] pi@raspberrypi:~ $ |