すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:よくある質問

最終更新日:Feb 22, 2024

このトピックでは、LiveChannelに関するよくある質問に対する回答を提供します。

ストリーム取り込みのプロセス

次の図は、LiveChannelにストリームを取り込むプロセスを示しています。これは、LiveChannelにストリームを取り込むときに発生する問題のトラブルシューティングに役立ちます。

詳細については、「PutLiveChannel」および「PutLiveChannelStatus」をご参照ください。

生成されたM3U8オブジェクトにLiveChannelに取り込まれたすべてのデータが含まれていない場合はどうすればよいですか?

原因: HTTPライブストリーミング (HLS) プロトコルのデフォルトルールに基づいて、生成されたM3U8オブジェクトには最後の3つのTSオブジェクトのみが含まれます。

解決策: PostVodPlaylist操作を呼び出して、指定された時間範囲内に生成されたTSオブジェクトをM3U8オブジェクトに収束します。

  • EndTimeの値は、StartTimeの値より大きくなければなりません。 EndTimeとStartTimeの間の期間は1日未満でなければなりません。
  • OSSは、指定された時間範囲内に指定されたすべてのLiveChannelsに取り込まれたストリームによって生成されたすべてのTSオブジェクトを照会し、これらのオブジェクトをM3U8プレイリストオブジェクトに収束します。

M3U8オブジェクトの生成に失敗した場合はどうすればよいですか?

原因: ストリーム内のデータがObject Storage Service (OSS) に完全に取り込まれていません。

解決策: クライアントでパケットをキャプチャして、「publish success」メッセージが返されたかどうかを確認します。 このメッセージは、ストリーム内のデータがOSSに完全にアップロードされたことを示します。 メッセージが返されてもM3U8オブジェクトが生成されない場合は、クライアントから送信されたパケットを分析して原因を特定します。

クライアントがOSSにストリームを取り込むことができない場合はどうすればよいですか?

問題の説明: クライアントは、次のコマンドを実行して、FFMpegを使用してストリームをOSSに取り込むことができませんでした。
ffmpeg -re -i 0_20180525105430445.aac -acodec aac -strict -2 -f flv rtmp:// xxx.oss-cn-beijing.aliyuncs.com/live/test_1000?Expires=1540458859&OSSAccessKeyId=LTAlujianb****&Signature=qwh31xQsanmao6ygCFJgo****%3D&playlistName=playlist.m3u8
解決策:
  • 元のコマンドを使用して、追加のパラメーターを設定せずにストリームを取り込みます。
  • ストリームの取り込みに使用するURLにアンパサンド (&) が含まれている場合は、URLを引用符 ("") で囲みます。 例: ffmpeg -re -i 0_20180525105430445.aac -acodec aac -strict -2 -f flv "rtmp:// xxx.oss-cn-beijing.aliyuncs.com/live/test_1000?Expires=1540458859&OSSAccessKeyId=LTAlujianb****&Signature=qwh31xQsanmao6ygCFJgo****%3D&playlistName=playlist.m3u8"
  • OBSを使用してストリームを取り込み、問題がFFMpegによるものかどうかを確認します。

取り込みストリームのレイテンシが高い場合は、PutLiveChannel操作を呼び出すときにFragDurationおよびFragCountパラメーターの値を調整します。

生成されたM3U8オブジェクトを再生するときにラグが発生した場合はどうすればよいですか?

Typeの値がHLSの場合、現在のTSオブジェクトのビデオまたはオーディオデータの期間がFragDurationの値に達すると、次のキーフレームが受信されたときに新しいTSオブジェクトが生成されます。 OSSは、次のTSファイルを作成する前に、特定の期間 (max(2 * FragDuration、60s) で計算) 、次のキーフレームを待ちます。 次のキーフレームが期間内に受信されない場合、OSSは新しいTSオブジェクトを作成し、新しいTSオブジェクトを使用してストリームにデータを格納します。 この場合、ラグが発生します。

生成されたM3U8オブジェクトにオーディオまたはビデオデータが含まれていない場合はどうすればよいですか?

原因:

  • AVCヘッダーまたはAACヘッダーは送信されません。 クライアントから送信されたパケットをキャプチャして、2つのヘッダーが送信されたかどうかを確認できます。
  • RTMPメッセージの長さが2より短いか、シーケンスヘッダの長さが短すぎます。
  • オーディオデータのMessageのサイズがキャッシュサイズを超えています。
  • codec_ctxパラメーターで指定されたオーディオまたはビデオデータが正しくありません。

FFMpegを使用してOSSにアップロードされたビデオにオーディオデータが含まれていない場合はどうすればよいですか?

解決策:

  • FFMpegによって生成されたログを表示して、aac_headerが送信されているかどうかを確認します。
  • クライアントから送信されたRTMPパケットをキャプチャして、aac_headerが送信されているかどうかを確認します。