| 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:~ $ |