FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
背景
MP4は私たちの一般的なビデオ形式であり、サーバービデオを再生する場合、直接要求されたMP4ビデオソースであることがよくあります。 しかし実際には、これは良くありません。 MP4ヘッダーファイル[ftyp + moov]は大きいため、最初の再生では、ヘッダーファイル全体をダウンロードして分析してから、再生可能な一定の長さのビデオクリップをダウンロードして再生する必要があります。 さらに、ビデオのサイズが大きくなると、ヘッダーファイルは大きくなり続け、最初の再生時間は長くなります。 このような状況を考えると、ビデオの初期分析をスピードアップできる方法が必要です。 HLSは、この問題を解決するためにAppleが提案したソリューションです。
HLS
HLSは、HTTP LiveStreamingの略語です。 これは、Appleによって提案されたHTTPベースのストリーミングメディアネットワーク伝送プロトコルです。 ライブとオンデマンドを同時にサポートできるだけでなく、マルチ定義、オーディオとビデオのデュアルトラック、字幕、その他の機能もサポートできます。 その原理は、ビデオ全体を複数の小さなビデオに分割することであり、完全な再生はこれらのセグメントを接続することによって形成されます。
HLSは携帯端末で広く使用されています。 HLSプロトコルをサポートする現在のクライアントは次のとおりです。
iOS 3.0以降、AVPlayerはHLSをネイティブにサポートします
上記のAndroid 3.0と
Adobe Flash Player11.0以降
その一般的な原則は次のとおりです。
1.オーディオとビデオを収集します
2.サーバーでオーディオとビデオをエンコードします
3.エンコード後、MPEG-2トランスポートストリームの形式でストリームセグメンターに渡します
4.スライサーはインデックスファイルとtsプレイリストを作成し、インデックスファイルはオーディオとビデオの位置を示すために使用され、tsは実際のマルチメディアクリップです。
5.前のステップのリソースをHTTPサーバーに配置します
6.クライアントがインデックスファイルの再生を要求すると、再生コンテンツはインデックスファイルから見つけることができます。
M3U8
HLSを実現するための重要なステップは、上記の3番目のステップ、つまりインデックスファイルとtsプレイリストの編成です。 ここではM8U3形式が使用されています。 M8U3はM8UのUnicodeバージョンであり、8はUTF-3エンコーディングが使用されていることを意味し、M3UとM8UXNUMXは両方ともマルチメディアリストのファイル形式です。
M3U8フォーマットの説明
テストのために、または特別な場合には、M3U8ファイルの内容を手動で変更する必要がある場合があるため、その形式をある程度理解する必要があります。 この形式の定義は、RFC8216ドキュメントに記載されています。 以下はいくつかの注意事項です。
M3U8ファイルはUTF-8でエンコードする必要があり、バイト順マーク(BOM)バイト順を使用できず、utf-8制御文字(U + 0000〜U_001FおよびU + 007F〜u + 009F)を含めることはできません。
M3U8ファイルの内容の各行は、空白行、URI、または#で始まる文字列のいずれかであり、空白文字を表示することはできません。
組み込みタグはすべて#EXTで始まる文字列であり、大文字と小文字が区別されます。
URIはコンテンツパスであり、相対パスまたは絶対パスにすることができます
マスターM3U8リストファイル
メインのM3U8インデックスファイルは、通常、複数のインデックスソースを指定するために使用されます。 まず、メインのm3u8ファイルhls_vod_mvp.m3u8の内容を分析しましょう。そのヘッドは次のようになります。
ヘッダー形式
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-INDEPENDENT-SEGMENTSコピーコード
#EXTM3Uは、ファイルがM3U形式であることを示し、すべてのM3U形式のファイルはコンテンツを最初の行に配置する必要があります。
#EXT-X-VERSIOnは、プレイリストの互換性のあるバージョン(現在は7)を示します。
#EXT-X-INDEPENDENT-SEGMENTSこのタグは、メディアセグメント内のすべてのメディアサンプルを、他のメディアセグメント情報に依存せずに個別にデコードできることを示します。
字幕フォーマット
以下の内容は一部のキャプションであり、キャプションの内容は不要です。
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subs"、NAME = "English"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "eng"、URI = "subtitles / eng / prog_index.m3u8 "
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subsC"、NAME = "English"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "eng"、URI = "subtitles / encc / prog_index.m3u8 "
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subs"、NAME = "Japanese"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "jpn"、URI = "subtitles / jpn / prog_index.m3u8 "
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subsC"、NAME = "Japanese"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "jpn"、URI = "subtitles / jpnc / prog_index.m3u8 "
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subs"、NAME = "Chinese"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "zho"、URI = "subtitles / zho / prog_index.m3u8 "
#EXT-X-MEDIA:TYPE = SUBTITLES、GROUP-ID = "subsC"、NAME = "Chinese"、DEFAULT = YES、AUTOSELECT = YES、FORCED = NO、LANGUAGE = "zho"、URI = "subtitles / zhoc / prog_index.m3u8 "コピーコード
#EXT-X-MEDIAは、同じコンテンツの多言語メディアリストリソースを指定するために使用されます。
TYPEはリソースタイプであり、オプションのコンテンツは、AUDIO、VIDEO、SUBTITLES、CLOSED-CAPTIONSです。
上記のコンテンツは、字幕タイプであるTYPE = SUBTITLESを設定します。
GROUP-IDは、多言語翻訳が属するグループであり、必須パラメーターです。
NAMEは、変換ストリームの読み取り可能な説明情報であり、この値はAVMediaSelectionOptionのdisplayNameに対応します。
DEFAULT、AUTOSELECT、FORCEDは、必要な情報が欠落している場合に翻訳ストリームがデフォルトで選択されるかどうかに対応するXNUMXつのBOOL値です。 ユーザーが設定を表示しない場合、再生ストリームが再生されます。 FORCEDは字幕タイプにのみ有効であり、翻訳ストリームの現在の自動選択をマークするために使用されます。 。
LANGUAGEは、[ISO 639言語コード]([ISO XNUMX言語コード]に従って設定される言語タイプを指定するために使用されます。https://www.w3.org/WAI/ER/WD-AERT/iso639.htm 「ISO639言語コード」)標準。 システムのデフォルトプレーヤーが字幕を選択すると、表示される字幕リストの名前はこの値に従って設定されます。
URIはリソースの場所情報であり、字幕付きのM3U8ファイルに対応します。 サブタイトル/eng/prog_index.m3u8は相対パスであり、
上記の情報から、上記のコンテンツの意味を次のように分析できます。現在のビデオは、英語、日本語、中国語のXNUMXつの字幕をサポートしています。 ただし、各言語にはXNUMXつのEXT-X-MEDIAメッセージがあります。 それらの違いはグループ化であり、XNUMXつはsubsにグループ化され、もうXNUMXつはsubsCにグループ化されます。 なぜXNUMXつのグループがあるのですか? これについては後で話します。
映像フォーマット
ビデオコンテンツのインデックスについて、もう一度見下ろしてください。
#EXT-X-STREAM-INF:BANDWIDTH=827299,AVERAGE-BANDWIDTH=747464,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970,AUDIO="program_audio",SUBTITLES=" subs"
0640 / 0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=360849,AVERAGE-BANDWIDTH=320932,CODECS="avc1.64001f",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"Copy code
EXT-X-STREAM-INF:この属性は、バックアップソース、つまり、ビデオ再生パスといくつかのビデオ情報を指定します。 対応するコンテンツの構成は次のとおりです。BANDWIDTHはピークビットレート、827299は827299bit / s、これは最高ピーク時間です。101秒あたりXNUMXKBのトラフィックを消費します。
AVERAGE-BANDWIDTHは平均ビットレート、747464です
CODECSはエンコード情報、avc1.64001f、mp4a.40.2、avcはh264エンコード形式を表し、次の64001fは64進数で表されるエンコードパラメーター、00、1、4fはそれぞれ40.2つの異なるパラメーター値を表します。 mpXNUMXaはオーディオコーディング形式であり、次のXNUMXはオーディオコーディングパラメータを表します。
RESOLUTIONはビデオの解像度です。 現在のビデオソースの解像度は640x360です。
FRAME-RATEは最大フレームレートであり、29.970は現在の再生の最大フレームレートが29.970フレーム/秒であることを表します。
AUDIOはオーディオグループであり、program_audioは対応するオーディオグループの名前です。
SUBTITLESは対応する字幕グループを示し、subsは対応する字幕グループの名前です。 上記の字幕情報にはGROUP-IDがあり、この値はそれに対応しています。
URIはコンテンツパスであり、0640 /0640.m3u8はビデオソースのm3u8ファイルパスに対応します。 これは、パケットキャプチャ情報で確認できます。
EXT-X-STREAM-INFの下には、プレイリストファイルに含まれるマルチメディアリソースのIフレーム(キーフレーム)を表すEXT-XI-FRAME-STREAM-INFがあります。 Iフレームは単なる画像であるため、オーディオコンテンツは含まれず、残りのパラメーターはビデオコンテンツ形式と一致します。
その後、さまざまな解像度、1920x1080、1280x720、960x540、480x270に対応するビデオソースがあります。 HLSはネットワークの状況に応じて解像度を自動的に切り替えるため、通常、複数の解像度を選択できるように準備されています。 キャプチャされたデータの分析によると、再生される最初のセグメントは640解像度であり、その後の8番目から480セグメントは640解像度であり、その後XNUMX解像度に切り替えられます。
オーディオ形式
下を見下ろすのは、対応するオーディオのインデックスです
#EXT-X-MEDIA:TYPE = AUDIO、GROUP-ID = "program_audio"、LANGUAGE = "eng"、NAME = "Alternate Audio"、AUTOSELECT = YES、DEFAULT = YES、URI = "audio1 /audio1.m3u8"コピーコード
#EXT-X-MEDIAは上に表示されましたが、複数の言語のリストについては言及されていません。
TYPE = AUDIO、今回はタイプはオーディオです。
GROUP-IDは、EXT-X-STREAM-INFのAUDIOコンテンツに対応するグループIDです。
URI = audio1 /audio1.m3u8はオーディオパスに対応します。
さまざまなエンコード形式の代替ソース
メインのM3U8ファイルには、上記の640解像度とは異なる640解像度のビデオソースも表示されます。 その内容は次のとおりです。
#EXT-X-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,VIDEO-RANGE=SDR,CODECS="hvc1.2.4.H150.B0,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970 ,AUDIO="program_audio_0",SUBTITLES="subsC"
0640c / prog_index.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,CODECS="hvc1.2.4.H150.B0",RESOLUTION=640x360,URI="0640c/iframe_index.m3u8"
#EXT-X-MEDIA:TYPE = AUDIO、GROUP-ID = "program_audio_0"、LANGUAGE = "eng"、NAME = "Alternate Audio"、AUTOSELECT = YES、DEFAULT = YES、URI = "audioc /prog_index.m3u8"コピーコード
CODECSエンコード形式はhvc1.2.4.H150.B0、mp4a.40.2で、オーディオエンコード形式は変更されていませんが、ビデオエンコード形式は変更されています。 hvc1は、HEVC(H265)エンコーディング形式の1つです。 これは、Appleが発表した新世代のビデオエンコーディングフォーマットです。 互換性の問題のため、多くのクライアントはこの形式を解析できないため、あまり人気がありません。 この形式のビデオソースが表示されます。ここでバックアップする必要があります。 同じ解像度の1つのコンテンツを比較すると、hvc1形式のビットレートがavc1形式のビットレートよりも高いことがわかります。これは、同じ解像度でhvcXNUMXのコンテンツが大きく、avcXNUMXの圧縮率が高いことを示しています。
hvc1形式のビデオソースに対応して、字幕コンテンツのグループ化とオーディオコンテンツのグループ化も変更されました。そのため、上記の字幕には同じ言語のコピーが1つあり、avc1形式とhvcXNUMX形式のビデオソースに対応しています。
これはM3U8のメインリストです。 このコンテンツのオーディオとビデオは別々に処理されますが、組み合わせることもできます。
メディア情報を含むM3u8ファイル
例としてファイル0640.m3u8を取り上げます
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6.006、
0640_00001.ts
#EXTINF:6.006、
0640_00002.ts
#EXTINF:6.006、
0640_00003.ts
....
#EXT-X-ENDLISTコピーコード
#EXTM3Uと#EXT-X-VERSIONは、それぞれM3Uファイルヘッダーと互換性のあるバージョン番号です。 この形式は初期バージョンであるため、バージョン番号はメインファイルよりも小さくなっています。
EXT-X-TARGETDURATIONは、各再生セグメントの最大期間を表し、7は7秒を表し、このディレクトリ内のセグメントは7秒を超えることはできません。
EXT-X-MEDIA-SEQUENCEは、プレイリストの最初のセグメントのシーケンス番号を表し、1は、再生セグメントが1から始まることを表します。
#EXTINFはセグメントの期間を表し、6.006は現在のセグメントが6.006秒であることを意味します。 この値を累積することにより、合計ビデオ継続時間情報が取得されます。
0640_00001.tsは、クリップの相対パスです。 tsファイルは、ビデオまたはオーディオの一部を表し、ts、mp4、aac、およびその他の形式にすることができます。 1から開くように指定されているため
|
サプライズを取得するには、メールアドレスを入力してください
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
お問い合わせ
カテゴリー
ニュースレター