Live Looper Blog

記事一覧

FFmpegでYouTubeにライブ配信する方法 - コマンド解説

2026年4月5日

FFmpegはコマンドラインで動画・音声を扱えるツール。サーバー上で動かせるので、OBSのようなGUIなしで24時間配信ができます。この記事ではFFmpegの配信コマンドを1つずつ解説します。

基本コマンド:1本の動画をループ配信

ffmpeg -re -stream_loop -1 -i video.mp4 \
  -c:v libx264 -preset ultrafast -b:v 2500k \
  -c:a aac -b:a 128k \
  -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_KEY

オプション解説

CPU負荷を減らす:copy mode

動画が既にH.264+AACの場合、再エンコードせずにそのまま送信できます。

ffmpeg -re -stream_loop -1 -i video_optimized.mp4 \
  -c:v copy -c:a copy \
  -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_KEY

-c:v copy -c:a copy でエンコード処理をスキップ。CPU使用率がほぼ0%になります。ただし入力動画がYouTubeの推奨仕様に合っている必要があります。

copy modeに必要な動画仕様

事前に最適化するコマンド

ffmpeg -i input.mp4 \
  -vf "scale=1280:720" \
  -c:v libx264 -preset medium -b:v 1500k \
  -g 48 -keyint_min 48 -r 24 \
  -c:a aac -b:a 128k -ar 44100 -ac 2 \
  -movflags +faststart \
  output_stream.mp4

この変換を一度やっておけば、配信時はcopy modeで済みます。

複数動画をプレイリストで配信

FFmpegの「concat」機能を使います。まずプレイリストファイルを作成:

# playlist.txt
file '/path/to/video1.mp4'
file '/path/to/video2.mp4'
file '/path/to/video3.mp4'

配信コマンド:

ffmpeg -re -stream_loop -1 \
  -f concat -safe 0 -i playlist.txt \
  -c:v copy -c:a copy \
  -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_KEY

自動復旧スクリプト

FFmpegが落ちたら自動で再起動するシェルスクリプト:

#!/bin/bash
while true; do
  ffmpeg -re -stream_loop -1 \
    -f concat -safe 0 -i playlist.txt \
    -c:v copy -c:a copy \
    -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_KEY
  echo "FFmpeg stopped. Restarting in 5 seconds..."
  sleep 5
done

最低限の自動復旧。ただしこれだとエラーの種類を区別できず、ログ管理もできません。

FFmpeg手動管理の限界

FFmpegの管理から解放されませんか?

Live Looperは中身でFFmpegを使っていますが、操作はブラウザから。動画アップ・プレイリスト管理・自動復旧がすべてUI付き。

無料で試す