オーディオ・ディレイ/フィルター

ライブ制作では、大型液晶スクリーンの処理遅延(リップシンク)を補正するために、映像よりも音声の再生を遅らせる必要がある場合があります。あるいは、マイク入力の音声にリミッターやゲートを追加することもあります。.

この記事の内容:
シンプルなオーディオディレイ
オーディオのコピーとディレイ
その他のオーディオフィルター


シンプルなオーディオディレイ

PLAYDECKでは、これは実はかなり簡単に実装できます。次のように、チャンネルに「ADELAY」オーディオフィルターを追加します。この例では、オーディオチャンネル1と2に600msのディレイを設定しています:

また、入ってくるリップシンクのずれを補正するために、これを「INPUTS」に設定することも可能です。.


オーディオのコピーとディレイ

また、オーディオチャンネル1と2をオーディオチャンネル3と4にコピーし、それらにディレイをかけることもできます。この場合の用途は、オーディオミキサー担当者がライブプレビュー音声を聴けるようにすることです。.

これはプレイリストレベルで設定する必要があるため、設定内のオーディオフィルターをすべて解除してください。.

まず、出力チャンネルのオーディオチャンネル数を増やすようにしてください。そうしないと、2以上のオーディオチャンネルはすべて処理されません:

プレイリストの項目を右クリックし、「オーディオチャンネルのマッピング」を選択します:

これにより、オーディオチャンネル1と2がオーディオチャンネル3と4にコピーされます:

ここで、プレイリスト項目をもう一度右クリックし、「オーディオフィルター」を選択して「ADELAY」フィルターを追加しますが、オーディオチャンネル3と4にのみ適用するように設定してください:


その他のオーディオフィルター

すべてのオーディオフィルターの完全な一覧を表示するには、「サンプルを表示」をクリックしてください。これにより、例が記載されたテキストファイルが開きます。.

ビデオエンジンのロギング

この記事では、Video Engineのロギングを設定する方法について説明します。.


1. ログ設定

PLAYDECK を起動し、開く 設定, 、そして 利用規約 タブ。ページの下部に設定オプションがあります。.

出力フォルダ: 保存先フォルダを選択してください。ネットワーク上の共有フォルダでも構いません。.

保存に関する注意: ログは、1分あたり最大1GBもの容量を消費することがあります(Verbosity 0で全モジュールが有効な場合)。問題が発生するまでの所要時間を考慮し、十分な空きディスク容量を確保してください。.

冗長性: ログ記録は常に 0 – トレース. これにより、Video Engineの開発者が必要な情報をすべて入手できるようになります。.

モジュール: 選択 すべて まず最初に。ログファイルが大きくなりすぎた場合は、特定のモジュールに絞ることでサイズを縮小できます:

まず最初に設定するのは、あなたの 出力フォルダ ログファイルの保存先として。これはネットワーク上の共有フォルダでも構いません。ログは(詳細レベル0かつ全モジュール有効の場合)、1分あたり最大1GBの容量を消費する可能性があります。バグの発生までにかかる推定時間に応じて、十分な空きディスク容量を確保してください。.

次の設定は 冗長性: ログ記録は必ず 0 – トレース, ……というわけで、ビデオエンジン開発チームはすべての情報を把握しています。.

~とともに モジュール 選択する設定 すべて まず第一に。ログファイルが大きくなりすぎた場合は、特定のモジュールに焦点を当てることでサイズを縮小できます:

  • すべて: すべてを記録します。.
  • プレイリスト、ファイル、コーデック:プレイアウト、ファイルのデコード、およびクリップの読み込み・再生に関するエラーについて扱います。.
  • 著者:ストリーム、録画、およびエンコードについて解説します。.
  • ネットワーク: ストリーミングプロトコルについて解説します。.
  • レンダラー: デバイスの出力とNDIに対応しています。.
  • ライブ: ライブ入力をカバーします。.
  • デバイス: ハードウェアデバイスに関するすべてのこと。.
  • ブラックマジック: Blackmagic Designのハードウェアに関するすべて。.


分割オプション: これは、稼働させているチャンネル数によって異なります。各チャンネルは個別のプロセスで動作するためです。もし 2チャンネル以上, 、[分割] オプションを有効にすることを強くお勧めします。.


2. ログ記録の開始/停止

バグをその場で特定するには、ログの記録を開始し、問題を再現してからログの記録を停止し、そのファイルを開発チームに送信する必要があります。.

時期: できます START そして STOP いつでもログを記録できます。これにより、事前にプレイリストやデバイスを準備しておくことができます。ファイル全体のサイズを管理しやすい範囲に抑えるため、開始から停止までの時間を最小限に抑えてください。.

セッションフォルダ: クリックすると START, 、現在のタイムスタンプを名前とした新しいサブフォルダ(例:, 2026-05-16__01-20-00) が、指定したログ保存先に作成されます。.

停止: 不具合が発生したら、クリックしてください STOP. 少なくとも10秒間お待ちください すべてのアクティブなログ処理がディスクへの書き込みを完了するようにするため。.

圧縮: ログの保存先を開き、セッションフォルダを探します。そのフォルダを右クリックし、[ 圧縮先…, 、そして選択して 7z (推奨)または ZIP. ファイルのサイズによっては、圧縮に時間がかかる場合があります。.

次に、セッションフォルダの内容をZIP形式で圧縮する必要があります。. 特定する セッションフォルダを「開始時刻」順に並べ替えます。次に、セッションフォルダを右クリックし、 圧縮先 そして選ぶ 7zファイル (利用可能な場合)または ZIPファイル. では、背もたれにもたれかかってください。圧迫には少し時間がかかるかもしれません。.


3. ログのアップロード

当社の公式ダウンロードポータルから、圧縮したログファイルをアップロードしてください:

https://download.joy-event-media.de

  1. ZIP/7zファイルをブラウザウィンドウにドラッグ&ドロップするか、ファイル選択画面をご利用ください。.
  2. クリック アップロード.
  3. 完了したら、クリックしてください コピー 生成されたダウンロードリンクをクリップボードにコピーします。.
  4. 以下のメールアドレス宛にメールを送信してください [email protected] ダウンロードリンクをメッセージに貼り付けてください。.

注:この特定のダウンロードリンクがない場合、データ保護ポリシーにより、弊社チームはお客様のファイルにアクセスすることができません。.


4. 後片付け

元のログファイルとセッションフォルダを必ず削除してください その後 圧縮とアップロードに成功し、ディスク容量を解放しました。PLAYDECKは古いログファイルを自動的に削除したり整理したりすることはありません。.


SCTE-35をストリームサーバーに送信する

SCTEマーカーは主に、受信側(ストリーミングサーバーなど)に対して、広告を挿入するタイミングや再生時間を通知することで、動画出力に広告を挿入するために使用されます。これにより、サードパーティのシステムがデータベースから動的に広告を選択することが可能になります。SCTE-35に関する一般的な詳細については、こちらをご覧ください。 このウェブサイト上で.

この記事の内容:
はじめに
SCTE-35 マーカーの例
SCTE-35マーカーをローカルでテストする
Nimble Streamer での SCTE-35 マーカーのテスト
補足情報


はじめに

また、以下もおすすめです SCTEに関する当社の概要記事.

PLAYDECKでは、SCTEマーカーを4つの異なるオブジェクトに割り当てることができます:
– クリップ(ポジション不問)
– ブロック(開始と終了)
– オーバーレイ(表示・非表示)
– アクションボタン

あらかじめ定義されたSCTEマーカーを提供する代わりに、私たちは別のアプローチを採用しました。つまり、ユーザー自身でSCTEマーカーを作成していただく必要があります。これには多少の学習曲線が必要かもしれませんが、最終的にははるかに柔軟性が高まります。 この方法の利点は、あらゆる受信機との互換性を常に確保できる点にあります。クリップの長さやその他の「変数」を取得するために、特定の「プレースホルダー」を用意しています。.

なお、ストリーム設定でSCTEを有効にする必要がありますのでご注意ください:


SCTE-35 マーカーの例

SCTE-35のサンプルをいくつか見てみましょう。これは「スプライシング」と呼ばれる、SCTE-35の中で最も一般的に使用される形式です。.

注: ここでご紹介するSCTE-35フォーマットは、Nimble Streamerでの使用に最適です(詳細は後述)。ご利用のストリームサーバーによっては、フォーマットが異なる場合があります。プロバイダーにお問い合わせください。.

これにより、広告が挿入され、指定された時間が経過すると自動的に番組に戻ります。再生時間は、現在再生中のクリップに対してPLAYDECKによって自動的に設定されます。これは{blockduration}または手動で入力した値に置き換えることができます。 再生時間を手動で設定する場合、計算式は「クリップの長さ × 90000」を四捨五入した値となります。 これには、90000がほとんどのSCTEシステムで採用されているデフォルトのタイムスケールであるという理由があります。例:クリップの長さが12.4秒の場合、SCTEの再生時間は1116000秒となります。.

再生時間を送信する代わりに、広告の開始と終了を示す2つの別々のSCTEマーカーを送信することも可能です。これらは、CUE-OUT(番組から広告へ移行する)およびCUE-IN(番組に戻る)と呼ばれます。.

すでにお気づきかもしれませんが、唯一の違いは「outOfNetworkIndicator」が1(CUE-OUT)か0(CUE-IN)かという点だけです。SCTEシステム自体は、「spliceEventId」に基づいて両方のマーカーをペアリングします。.

注: サポートされているプレースホルダーは以下の通りです:{timestamp} {timestampunix} {airtimenext} {airtimenextunix} {plannednext} {plannednextunix} {clipid} {blockid} {blockduration} {clipduration}


SCTE-35マーカーをローカルでテストする

PLAYDECKを開きます。現時点ではクリップを読み込む必要はありません。任意のACTIONボタンを右クリックし、新しいアクションを作成して、「COMMANDS/SCTE」を選択します:

「SCTE-35」をクリックして、SCTE-35サンプルタグを挿入します。「OK」を2回クリックしてポップアップを閉じます:

現在、互換性のあるストリーム(UDP、DVB、SRT)に対してSCTE-35タグを送信できるようになりました。現時点ではストリームが存在しないため、今すぐ「アクション」をクリックしても何も起こりません。.

ここでは、出力を単にファイルに書き出すだけのテスト用UDPストリームを作成してみましょう。そうすれば、(現時点では)サーバー関連の設定に煩わされる必要がありません。以下の設定をコピーし、「START NOW」をクリックしてストリームを開始してください。「Parameter」でSCTE-35を有効にするのを忘れないでください:

それでは、サンプルSCTE-35タグをストリームに送信します。設定画面を閉じ、アクションボタンを数回クリックしてから、再度設定画面に戻り、「今すぐ停止」を選択してストリームを停止してください。.

SCTE-35のタグがPLAYDECKに記録されました。「アクション」ボタンからSCTE-35のコード画面に戻り、「イベントログを開く」をクリックすると、ログを確認できます。

また、録画したストリームに含まれるSCTE-35タグを表示することも可能です。これを行うには、「DVBInspector」という別のツールが必要です。このツールにはJAVAランタイムも必要ですので、両方をダウンロードしてください:

このツールにはJAVAランタイムが必要です。まだインストールされていない場合は、こちらからダウンロードできます:
https://www.oracle.com/java/technologies/downloads/

「DVBinspector-1.18.0-dist.zip」(または類似のファイル名)を解凍し、「DVBinspector-1.18.0.jar」を起動してください。次に、TSファイルをアプリケーションにドラッグ&ドロップします。SCTEマーカーを表示するには、次のようにツリーを展開してください。.


Nimble Streamer での SCTE-35 マーカーのテスト

Nimble Streamerは、当社が採用しているストリーミングサービスです。コスト効率に優れ、設定や保守も容易でありながら、高度なユースケースにも対応できる十分な機能性を備えています:

https://softvelum.com/nimble/

PLAYDECKが動作しているマシンに、Nimbleの14日間試用版をインストールしてください。これは必須ではありませんが、ネットワーク設定の手間が省けるため、作業が簡単になります。 また、Nimble Streamer自体はユーザーインターフェースなしでインストールされるため、NimbleからWMSPanel(Nimble用のWebベースのセットアップツール)でのアカウント作成を求められます。.

情報: このSCTE-35サンプルを動作させるには、本番環境でテストする場合、「Nimble Live Transcoder」や「Nimble Advertizer」のプラグインは不要です。試用版では、これらのプラグインはデフォルトで無効になっています。.

Nimbleの起動が完了したら、手動で行う必要がある設定がもう1つあります。こちらのNimbleサーバー設定ファイルを開いてください:
c:\Program Files\Nimble Streamer\conf\nimble.conf

このファイルの末尾に以下の行を追加し、ファイルを保存してください。.

scte35_processing_enabled = true 
scte35_forwarding_enabled = true 
hls_ad_scte35_forwarding_enabled = true
hls_ad_marker_format = cue
hls_ad_splice_out_cont_marker_enabled = true

重要: 今すぐPCを再起動するか、Windowsサービス「Nimble Streamer」を手動で再起動して、Nimbleを再起動する必要があります。.

以下にコードを再掲しますが、今回はコメントを添えています(これらは使用しないでください):

scte35_processing_enabled = true  // SCTEモジュールを全般的に有効化します。他のすべてのオプションで必要です
scte35_forwarding_enabled = true  // Live Transcoder経由でSCTE-35マーカーを転送できるようにします
hls_ad_scte35_forwarding_enabled = true  // SCTE-35マーカーをHLSストリームへ転送する機能を有効化
hls_ad_marker_format = cue  // NimbleがCUE-OUTおよびCUE-INマーカーを使用するように設定
hls_ad_splice_out_cont_marker_enabled = true  // EXT-X-CUE-OUT-CONTの自動挿入を有効にする

それでは、WMSPanelでStreamsの設定を行っていきましょう:
まず、受信ストリームを定義します。メニューの「Nimble Streamer」に移動し、「MPEGTS In」を選択して「Add UDP stream」ボタンをクリックし、次のように受信ストリームを追加します。ポート5001がすでに使用中の場合は、他のポートを使用しても構いません。.

次に、出力ストリームのフォーマットを設定します。 ここでは、UDPからHLSへのSCTEマーカーの変換を実演するために、HLSを使用します。同じページで、「MPEGTS Out」に移動し、「Add outgoing stream」ボタンをクリックして、次のように追加してください。入力ストリームとして、ビデオとオーディオのソースを選択していることを確認してください。.

次に、PLAYDECKでの設定を続けます。「ストリーム出力設定」に移動し、ストリームURLを「udp://127.0.0.1:5001」に変更してください。.

情報: お好みのビデオコーデックを選択できます。今回は、NVIDIA GPUでエンコードを行わせ、CPUの使用率を抑えるためにH.264を選択しました。また、「パラメータ」でSCTE-35を有効にしてください。.

情報: PLAYDECKではHLSを直接ストリーミングすることはできませんのでご注意ください。ストリーミング形式として「Apple HTTP Live Streaming」を選択した場合、出力はファイルに書き込まれます。 そのため、「Stream URL」としてファイルの保存先(例:c:\Users\Public\Documents\stream.m3u8)を指定する必要があります。 その後、任意のストリーミングサーバーを使用して、そのファイルをストリーミングしてください。PLAYDECKでは、HLSマニフェストファイル(*.m3u8ファイル)にHLS SCTEタグを書き込むことはできません。.

次に、PLAYDECKでボタン操作だけでなく、クリップに関連付けてSCTEを自動的に送信できるようにします。そのため、任意のクリップを挿入し、ツールバーの「COMMANDS」アイコンをクリックして新しいコマンドを追加します。次に「PLAY TIME 0」を選択し、SCTE-35のサンプルを挿入します:

情報: また、ブロック、オーバーレイ、アクションボタンにSCTEマーカーを追加することもできます。.

それでは、さっそく始めましょう。クリップを「CUE」して「PLAY」し、PLAYDECKの設定でストリームを開始します。WMSPanelに移動し、メニューの「Nimble Streamer」から「Live Streams」を選択してください。 すると、1つのライブストリームが実行中になっているのが確認できます。それをクリックし、右端にあるこのような疑問符のアイコンを選択してください。.

「再生するURL」のリストから、「playlist.m3u8」で終わるURLを選択し、「コピー」をクリックします。次に、HLSプレーヤーが組み込まれているか、インストールされている任意のブラウザにこのURLを貼り付けます。この例では、以下のHLSプレーヤー拡張機能をインストールしたChromeブラウザを使用します:
https://chromewebstore.google.com/detail/hls-player-m3u8-streaming/eakdijdofmnclopcffkkgmndadhbjgka

そのURLをChromeに入力すると、すぐにPLAYDECKのストリームが再生されます。 それでは、SCTEマーカーを確認する方法をご説明します。ChromeでF12キーを押して開発者ツールを開きます。上部にある「ネットワーク」タブをクリックしてください。すると、ストリームの一部である「chunks.m3u8」がいくつか表示されます。 Chunkファイル(HLSマニフェストとも呼ばれます)のいずれかをクリックし、その横にある「プレビュー」を選択してください。これでHLS SCTEタグが表示されます。もし表示されない場合は、別のChunkをクリックしてください。SCTEはクリップの開始時のみ送信されるためです。.

以上です!テストの目標を達成しました。今後、さらに詳しく調べておくと役立つかもしれない情報を公開する予定です。.


補足情報

PLAYDECKへのログイン

送受信されるすべてのSCTEタグをログに記録します。これにより、出力(SDIおよびストリーム)を入力にループバックさせるだけで、送信されるSCTEをテストし、PLAYDECKにSCTEを検出させることができます。ログファイルは、メインメニューの「Logs」から開くことができます:


Nimble Streamer でのログ記録

何か問題が発生したり、期待通りに動作しなかったりした場合は、まずNimbleのログファイルを確認することをお勧めします。Windowsでは、ログは以下の場所にあります:
c:\Program Files\Nimble Streamer\log

Nimble Trial版では、ログ記録はデフォルトで有効になっています。ただし、手動で有効にする必要がある場合は、以下に「nimble.conf」の設定オプションを示します。.

log_access = file
logging = debug

それでは、ログファイルを開き、「SCTE」という文字列を探してください。次のような内容が表示される場合がありますが、これはPLAYDECKのSCTEマーカーにタイプミスがあることを示しています:

[SCTE35] [mynewapp/mynewstream] に対して、サポートされていないスプライスコマンド type=6 が指定されました

NimbleでSCTEマーカーの解析が正常に完了した場合、次のような表示になります:

[SCTE35] splice_insert: event_id=4157 oon=1 immediate=1 pts_adjustment=0 pts=0 actual_pts=202593600 duration=2707200 data=0xfc....



ツール:TSDuck

これは、MPEGトランスポートストリームを操作するための豊富なライブラリを備えたツールおよびプラグインのコレクションです。これを使用すれば、アルゴリズムやその他の複雑なロジックに基づいて、PLAYDECKの外側にSCTEマーカーを挿入することが可能になります。.

https://tsduck.io/


ツール: x9k3

このツールは、UDPストリームやMPEG-TSファイル内のSCTE-35マーカーをHLS SCTEタグに変換することも可能です。これにより、SCTE-35からHLSへの自動変換機能を備えていないストリーミングサーバーを導入することが可能になります。.

https://github.com/futzu/x9k3