3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FFmpeg で現在時刻入りのテスト映像ソースを作ろう!

Posted at

やりたいこと

FFmpeg で現在時刻入りのテスト映像ソースを作って、RTMP でライブ配信サービスに突っ込んで、配信サービスの遅延をテストしたい。

こんな感じのやつ。
スクリーンショット 2021-02-10 173556.png

手順

必要なソフトのインストール

FFmpeg をどうにかしてインストールしてください。筆者は Windows 10 で実験しましたので、下記リンクから Windows 用のバイナリを落としてきて、C:\bin\ffmpeg に ffmpeg.exe を置きました。

Download FFmpeg

ライブ配信用のサービスのセットアップ

筆者は Azure のなかの人なので、Azure Media Services の Live Channel を作りました。
(ここの手順はあとで別記事で書きたいと思います。)
たぶん RTMP/RTMPS で受けられるサービスなら何でもいいと思います。

Azure Media Services の Live Streaming の機能を使う場合、このあたりのドキュメントの手順に従って、ライブ配信の準備をした結果として、インジェスト用の URL として以下のようなものがポータルに表示されました。

rtmp://ライブチャンネル名.channel.media.azure.net:1935/live/自動生成されるパラメーター

そこにおまじないを一言加えた以下の URL を使うと、動画のインジェストが可能です。

rtmp://ライブチャンネル名.channel.media.azure.net:1935/live/自動生成されるパラメーター/mystream1

あとはコマンド一発

コマンドプロンプトを開いて、以下のコマンドで RTMP でインジェストが始まります。コマンドの最後の URL のところを、自分が使っているインジェスト先に変えれば、どこのサービスにも RTMP でこのテストソース映像を打ち上げられると思います。

ffmpeg.exe -re -f lavfi -i "sine=frequency=440:sample_rate=44100" -f lavfi -i smptehdbars -vf drawtext="fontfile=monofonto.ttf: fontsize=24: box=1: boxcolor=black@0.75: boxborderw=5: fontcolor=white: x=(w-text_w)/2: y=((h-text_h)/2)+((h-text_h)/4): text='%{localtime}'" -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -preset medium -bufsize 800k -maxrate 400k -f flv rtmp://ライブチャンネル名.channel.media.azure.net:1935/live/自動生成されるパラメーター/mystream1

まとめ

FFmpeg のコマンドオプション、順番によって動いたり動かなかったりと大変面倒なのですが、これがどなたかの役に立ちましたら幸いです。

もっといいコマンドあるよ!というコメントもお待ちしております!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?