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 ->イディッシュ語
HLSとHttpLive Streamingは、Appleによって定義されたリアルタイムストリーミングのプロトコルです。 HLSは、HTTPプロトコルに基づいて実装されます。 送信内容は3つの部分で構成されます。8つはMXNUMXUXNUMX記述ファイルで、もうXNUMXつはTSメディアファイルです。
1.M3U8ファイル
メディアファイルは、一連のタグで構成されるテキストで記述されています。
#EXTM3U
#EXT-X-TARGETDURATION:5
#EXTINF:5、
./0.ts
#EXTINF:5、
./1.ts
#EXTM3U:各M3U8ファイルの最初の行はこのタグでなければなりません。
#EXT-X-TARGETDURATION:最大メディアセグメント時間の長さ(秒)を指定します。 #EXTINFで指定される時間の長さは、この最大値以下である必要があります。 この値はXNUMX回だけ表示できます。
#EXTINF:単一のメディアファイルの長さを記述します。 ./0.tsなどのメディアファイルが続きます
iOSデバイスとMacでHTTPによって配布できます。 プレイリストの標準はm3uによって拡張されたm8u3ファイルであり、メディアファイルはMPEG2-TSまたはAACファイル(オーディオのみ)です。
m3u8ファイルにはXNUMXつのアプリケーションシナリオがあります。
マルチレート適応ストリーム、
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID = 1、BANDWIDTH = 1280000
#EXT-X-STREAM-INF:PROGRAM-ID = 1、BANDWIDTH = 2560000
#EXT-X-STREAM-INF:PROGRAM-ID = 1、BANDWIDTH = 7680000
#EXT-X-STREAM-INF:PROGRAM-ID = 1、BANDWIDTH = 65000、CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
シングルレート適応ストリーム
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220、
http://media.example.com/entire.ts
#EXT-X-ENDLIST
国際標準化機構はこのRFCドキュメントを定義します:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
m3u8ファイルはm3uファイルの拡張子です。 拡張キーワードは、RFCで定義されています。
その中で:
#EXT-X-TARGETDURATION
各TSの最大期間を定義します。
#EXT-X-MEDIA-SEQUENCE
現在のm3u8ファイルの最初のファイルのシリアル番号を定義します。 各tsファイルには、m3u8ファイルに固定された一意のシリアル番号があります。 シリアル番号は、MBR中にアライメントのコードレートを切り替えるために使用されます。
#EXT-X-KEY
tsファイルをデコードするための16バイトのキーファイルを取得するために使用される暗号化方法とキーファイルのURLを定義します。
属性:
METHOD
URL
#EXT-X-PROGRAM-DATE-TIME
最初のファイルの絶対時間
#EXT-X-ALLOW-CACHE
キャッシュを許可するかどうか。
#EXT-X-ENDLIST
m3u8ファイルの終わりを示します。 ライブm3u8にはこのタグがありません。
#EXT-X-STREAM-INF
属性:
BANDWIDTHはビットレートを指定します
プログラムID一意のID
CODECSは、ストリームのエンコードタイプを指定します
#EXT-X-不連続性
タグが検出されると、次の属性が変更されました。
ファイル形式
トラックの数と種類
エンコーディングパラメータ
エンコードシーケンス
タイムスタンプシーケンス
#EXT-X-VERSIONこの属性は使用できるかどうか、使用できない場合があります
M3U8は、トップレベルのM3U8とセカンドレベルのM3U8に分けられます。 トップレベルのM3U8は、主にマルチレート適応に使用されます。 第3レベルのM8UXNUMXは実際のスライスファイルです。
デフォルトでは、クライアントは最初にビットレートが最も高いリクエストを選択します。 ビットレートに到達できないことが判明した場合、ビットレートの低いストリームを要求します
実際に使用されている最上位のM3U8ファイルは次のとおりです。
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID = 201273221265、BANDWIDTH = 358400
11.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID = 201273221265、BANDWIDTH = 972800
22.m3u8
上記のトップレベルのM3U8ファイルは、11つの第3レベルのファイル8.m22u3と8.mXNUMXuXNUMXを定義し、クライアントはそれらのXNUMXつを選択してコンテンツを取得します。
セカンダリM3U8ファイルの内容は次のとおりです。
#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:3、
1-4.ts
#EXTINF:8、
1-6.ts
#EXTINF:8、
1-8.ts
#EXTINF:8、
1-10.ts
#EXTINF:8、
1-12.ts
#EXTINF:8、
1-14.ts
#EXTINF:8、
1-16.ts
#EXTINF:9、
1-18.ts
#EXTINF:6、
1-20.ts
#EXTINF:8、
1-22.ts
#EXTINF:9、
1-24.ts
#EXTINF:3、
1-26.ts
#EXT-X-ENDLIST
クライアントは上記のセカンダリM3U8ファイルを取得した後、内部のファイルを要求し続け、再生できるようになります。
上記はオンデマンドの状況とライブブロードキャストの状況に関するものであり、M3U8ファイルにはライブであることを示す属性があり、クライアントは定期的に新しいM3U8ファイルを要求します。
// HLSがオンデマンドとライブブロードキャストを実現する場合、M3U8ファイルの違い
1.問題の説明
最近、HLS(HTTP Live Streaming)を使用してライブブロードキャストを行う、トランスコードされたスライス再生テストを行いました。 各TSセグメンテーション時間は10秒で、次のライブm3u8ファイルがTSセグメンテーションファイルに従って生成されます。
コードをコピーする
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-TARGETDURATION:10
#EXTINF:10
hls / 1.ts
#EXTINF:10
hls / 2.ts
#EXTINF:10
hls / 3.ts
#EXTINF:10
hls / 4.ts
#EXTINF:10
hls / 5.ts
#EXTINF:10
hls / 6.ts
#EXTINF:10
hls / 7.ts
#EXTINF:10
hls / 8.ts
#EXTINF:10
hls / 9.ts
#EXTINF:10
hls / 10.ts
コードをコピーする
上記のm3u8ファイルをlive.m3u8として保存し、Apacheドキュメントディレクトリに配置して、VLCで次のURLを再生します。
http://localhost/live.m3u8
テストでは、再生を開始する最初のファイルが1.tsではないことがわかりました。 いくつかのテストの後、次のことがわかりました。
リストにXNUMXつ以上のファイルがある限り、リストの最後のXNUMXつのファイルは常に再生されます
2 問題解決
インターネットを検索したところ、効果的な情報が見つからなかったのはとても悲しいことです。 バディは同じ状況に遭遇しました、彼はそれを解決した後に彼の経験を共有しましたか?
同僚と相談したところ、ライブのm3u8ファイルリストをリアルタイムで更新する必要があるため、可能であると同僚は言いました。 テストを行う場合は、最初に最後に#EXT-X-ENDLISTを追加できます。 このメソッドはテスト済みです。動作しますが、これはライブm3u8モードではなくなりました。
もう一度インターネットを検索した後、私はついにライブのm3u8の説明を見つけたことを確認しました
ライブプレイリスト(スライディングウィンドウ)
ライブセッションの場合、新しいメディアファイルが作成されて使用可能になると、ファイルからメディアURIを削除することにより、インデックスファイルが更新されます。
重要:EXT-X-ENDLISTタグはライブプレイリストに存在しません。これは、新しいメディアファイルが利用可能になったときにインデックスファイルに追加されることを示します。
セッションの開始時に表示されるライブプレイリストの例については、リスト3を参照してください。
リスト3セッション開始時のライブプレイリスト。
コードをコピーする
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10、
ファイルシーケンス1.ts
#EXTINF:10、
ファイルシーケンス2.ts
#EXTINF:10、
ファイルシーケンス3.ts
#EXTINF:10、
ファイルシーケンス4.ts
#EXTINF:10、
ファイルシーケンス5.ts
コードをコピーする
EXT-X-MEDIA-SEQUENCEタグの値は、プレイリストファイルから削除されるメディアURIごとに1ずつインクリメントする必要があります。 メディアURIは、プレイリストに表示される順序でプレイリストファイルから削除する必要があります。 更新されたインデックスファイルは、連続ストリームへの移動ウィンドウを表示します。 このタイプのセッションは、連続ブロードキャストに適しています。
新しいメディアURIで更新された後の同じプレイリストは次のとおりです。
リスト4メディアURIを更新した後のライブプレイリスト。
コードをコピーする
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:2
#EXTINF:10、
ファイルシーケンス2.ts
#EXTINF:10、
ファイルシーケンス3.ts
#EXTINF:10、
ファイルシーケンス4.ts
#EXTINF:10、
ファイルシーケンス5.ts
#EXTINF:10、
ファイルシーケンス6.ts
コードをコピーする
3.ライブm3u8更新ルール
ライブm3u8ファイルのリストは継続的に更新する必要があり、ルールを更新します。
ファイルプレイリストの一番上の(再生されたと思う)ファイルを削除します
EXT-X-MEDIA-SEQUENCEタグを継続的に更新し、1ずつ増やします
4.実験
テスト用のライブm3u8を生成する小さなプログラムを作成します
使用法:
m3u8_gen.exe start_num list_count duration filename.m3u8 [プレフィックス]
使用例
m3u8_gen.exe 1 3 10 live.m3u8 hls /
live.m3u8ファイルを次のように生成します
コードをコピーする
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-TARGETDURATION:10
#EXTINF:10
hls / 1.ts
#EXTINF:10
hls / 2.ts
#EXTINF:10
hls / 3.ts
コードをコピーする
BATスクリプトを記述して、live.m3u8ファイルを10秒ごとに更新します
コードをコピーする
@オフエコー
f
|
サプライズを取得するには、メールアドレスを入力してください
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はビデオとオーディオをより簡単に送信します!
お問い合わせ
カテゴリー
ニュースレター