放送レベルHD-SDI信号の低帯域、超低負荷PC収録:ffmpegを使ったストリームのファイル化方法
民生機器~業務用機器の充実により、放送レベルの映像をかんたんにPCに収録できる時代です。これを発展させれば簡易映像サーバーや、映像ファールのネットワーク化ができます。エンコーダの能力にもよりますが、ファイルは概ね15Mbpsでエンコードすると十分に使えるレベルになります。映像プロダクションにおける映像ネットワークを構築するヒントについて、共有したいと思います。
■やりたいこと
放送レベルのデジタル映像、音声をファイル化し、民生機、一部業務機を組み合わせて映像サーバーネットワークを構築したい。
■構成要素
- IPエンコーダ:H.264でエンコード
- Win10 PC(+大容量HDD+NASとか):収録機
- ffmpeg:H.264の映像信号をPCにてファイル化
- 場合によりスキャンコンバータ:1080i→pへの変換
■流れ
入力信号→IPエンコード→PCに取り込み→ファイル化
■今回使用する要素
- IPエンコーダ:Panasonic:AG-UMR20
- スキャンコン:グラスバレー:ADVC-G1
- 収録機:そこらへんの低スペックPC+1TB HDD
- NASもあり
- スイッチングハブ:なんでも可
- ffmpeg:Webからダウンロード
■接続
下の図のように接続します。IPエンコーダまではSDIケーブルもしくはHDMIケーブルを接続します。また、IPエンコーダとハブ、PC、NASの接続はイーサネットケーブルを使います。あと、適当にIPアドレスを振り分けます。言わずもがなですが、スキャンコンやIPエンコーダのへの入力はSDI信号、それ以降はイーサケーブル接続によるIP信号です。
■PCの準備
ffmpegをインストールします。
こちらのリンクhttps://ffmpeg.zeranoe.com/builds/、Versionは4.2.2など数字が書いてあるものを選択、OSを選択、LinkingはStaticでOKです。その後[Download Build]をクリックし、Zipファイルをダウンロードします。ダウンロードしたZipファイルを解凍し、出てきたフォルダをまるごとC:ドライブのルートフォルダに移動します。このとき、ffmpegの要素が入ったフォルダの名称をここでは「fm」とします。このフォルダの名称は、後にffmpegを起動するときに使用します。
つぎにPCのIPアドレスを手入力します。コントロールパネル→ネットワークと共有センター→イーサネット→プロパティ→インターネットプロトコルバージョンを選択してプロパティを開きます。「次のIPアドレスを使用」を選び、IPアドレスを記入します。このとき、入力するのはIPアドレスとサブネットマスクだけで大丈夫です。
■ストリームの開始
IPエンコーダからストリームを開始します。ストリームアドレス(PCからストリームを取りに行くためのアドレス)は機器ごとに違うので説明書等で確認しておいてください。たとえばUMR20だとrtsp://192.168.0.1/mediainput/h264/stream_1とかになります。PCでのプロセスは飛んできたストリームをコピーしてファイル化するだけなので、例えば3つのストリームを同時収録しても5%ぐらいのPC負荷です。
■ffmpeg起動スクリプト
ストリームを再生するだけのスクリプト
"C:\fm\bin\ffplay.exe" -fs -rtsp_transport tcp -i rtsp://192.168.0.1/mediainput/h264/stream_1
ストリーム収録スクリプト
@echo off echo %date% echo %time% set yyyy=%date:~0,4% set mm=%date:~5,2% set dd=%date:~8,2% set time2=%time: =0% set hh=%time2:~0,2% set mn=%time2:~3,2% set ss=%time2:~6,2% echo Pana Recording "C:\fm\bin\ffmpeg.exe" -re -rtsp_transport tcp -i rtsp://192.168.0.1/mediainput/h264/stream_1 -vcodec copy -acodec copy -t %dur% D:\TEST_%yyyy%%mm%%dd%-%hh%%mn%.mp4
■ご参考
IPエンコーダはAJA HELOなどIPエンコードできるものなら同じ要領で収録可能です。