問題タブ [mediastreamsegmenter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
video-streaming - セグメント化するキーフレームのリストを受け入れる hls セグメンター
x264 を使用してバリアント h.264 ストリームを作成しています。qpfile (http://mewiki.project357.com/wiki/X264_Settings#qpfile) を使用して、バリアント ストリームに共通のキーフレームがあることを確認します。ただし、qpfile でビデオのすべてのフレームを指定しているわけではないため、エンコーダー オプティマイザーが必要とする場合は、ストリーム間で異なる他のキーフレームを使用できます。
新しいセグメントの開始を許可するキーフレームを指定できるセグメンターはありますか? それ以外の場合、ターゲット期間のみでセグメント化すると、バリアント ストリームが同期されずにセグメント化される可能性があります。
現在のエンコーディング プロセスを変更せずに hls を追加したいので、質問しています。これを許可するセグメンター、または同様のものを見たことがありません。
http-live-streaming - Windows用のHLSvarianplaylistcreator
私の最初のタスクは、コーデックを変更せずにh264 \ aacビデオファイルを分割し、HLSで再生できるようにするWindows用のセグメンターを見つけることでした。
私のために働いた最良の方法は、次のようにffmpegを使用することです:
さて、これはファイルを多かれ少なかれ正しく分割しますがmediastreamvalidator
、いくつかの警告を投げましたが、それでも私はビデオを再生することができました。
しかし、ここで注意が必要な部分があります。ffmpegは.m3u8ファイルを作成できません。私が必要としているバリアントプレイリストファイルを作成する必要がない限り、これは問題ではありません。だから今、私は模倣するWindows用のアプリを見つけるか書く必要がありますvarianplaylistcreator
たとえば、64、150、300、500、800、1200、2400の異なる帯域幅ごとに同じビデオがエンコードされているとします。各ビデオをセグメント化した後、これらのセグメントをプレイリストファイルを含む個別のフォルダーに配置します。レンディションごとに。
これで、バリアントプレイリストファイルを作成できます。このファイルには、すべてのレンディションと、異なるレンディションの提供を自動的に切り替える帯域幅サーバーに関する指示がリストされています。
通常、バリアントプレイリストは次のようになります。
BANDWITH属性値に注意してください。これらは、によって計算された値だと思いますvarinatplaylistcreator
。
そして、私はそれがどのようにそれを行うのかわかりません。どういうわけか、各レンディションのビデオ(セグメント)の平均ビットレートが必要であり、それに基づいてそれが行われます。
だから私の質問は:それらがどのように計算されるかです。あるいは、誰かがWindowsで実行して、さまざまなプレイリストを作成できるツールをすでに作成しているかもしれません。
ruby-on-rails - FLV をトランスコード/リマックスし、オンザフライでストリーミング
私はビデオ ストリーミングとトランスコーディングについて少し独学しようとしていますが、Roku アプリの開発も手伝っています。クライアントにストリーミングしたい多くのビデオファイル (ほとんどが FLV 形式 (H.264/AAC)) があります。この場合、Roku ボックス (MP4 (H.264/AAC) を受け入れHTTP ライブ ストリーミング (HLS))。FLV ファイルをトランスコード/再多重化して、おそらく HLS 経由でその場でクライアントにストリーミングできるかどうか疑問に思っています。
ffmpeg を使用してファイルを再多重化し、トランスコーディング プロセス中にすぐに提供しようとしましたが、書き込みプロセスが完了するまで再生できません。Roku で完成した MP4 ファイルを Apache/Rails 経由で問題なく再生できます。
しかし、私は疑問に思っています...ファイルをトランスコード/リマックスするようにサーバーをセットアップし、すぐに出力ファイル(ffmpeg/使用しているツールから)をクライアントにストリーミングすることは可能ですか? もしそうなら、これを達成するためにどのようなツールが必要ですか? メディア ファイル セグメンターを使用して、トランスコードまたは再多重化されているファイルを分割することはできますか?
トランスコーディング プロセスが CPU を大量に消費することは十分承知していますが、トランスコーディングとオンザフライ ストリーミングの実用性についてはあまり心配していません。これを処理します)。
ここでベースから外れていたら申し訳ありません。これをハックしようとしているだけです。
ありがとう!
video - Apple セグメンターの「最適化」オプションは実際に AAC オーディオに対して何をしますか?
-optimize
Apple HLS ビデオ ストリームを再生するための Flash ビデオ プレーヤーを作成しています。オプションを有効にして (現在はデフォルト) Apple ツールによってセグメント化された AAC オーディオ トラックを含むコンテンツには、オーディオ トラックがあることがわかりました。デコードできません (同期バイトがあるべき場所にありません)。
最適化オプションはオーディオに何をしますか? 再エンコードしていますか、それとも別の方法でパックしていますか?
最も重要なことは、オーディオ トラックを正しく読み取るために何をする必要があるかということです。
私はここ数ヶ月探してきましたが、これに対する技術的に有用な答えを誰も持っていないようです(つまり、「ファイルが小さくなる」以上のもの)。
これはオーディオ トラックにのみ影響するようです。オーディオ デコードを無効にすると、すべてのケースでビデオが正常に再生されます。少なくとも、これまでに見たすべてのもの - Apple ツール、ffmpeg、商用エンコーダなど。
video - ffmpeg: 無効なセグメント ファイル名テンプレート 'stream05d.ts'
Windowsビルドhttp live streaming
で使用しようとしました( http://ffmpeg.zeranoe.com/builds/)ffmpeg
これがコマンドです
エラーメッセージが発生しましたが、
このエラー メッセージの意味と解決方法を教えてください。
ffmpeg - mediastreamsegmenter が HLS を使用した id3 メタデータの送信を停止する
ffmpeg
Apple のmediastreamsegmenter
との組み合わせを使用して、id3taggenerator
メタデータ (ID3) が埋め込まれた HLS ストリームを作成しています。私はすべてのアプリケーションを実行しており、クライアント側でストリームからメタデータを取得できますが、問題は、ランダムな時間が経過した後、クライアントがストリームでのメタデータの受信を停止することです。
これが私が今取り組んでいるものです:
これはffmpeg
andmediastreamsegmenter
の部分です:
これは、ポート 5010 のローカルホストで udp ストリームを取得し、ビデオとオーディオをそれぞれ H.264 と AAC にエンコードしています。MPEG-2 トランスポート ストリーム セグメントを にピッピングし、ファイルと関連ファイルをmediastreamsegmenter
生成して Web サーバーに配置します。また、はポート 4242 で からの tcp トラフィックをリッスンしており、現在の使用方法を示します。.M3U8
.ts
NGINX
mediastreamsegmenter
id3taggenerator
ご覧のとおり、JSON の単純な xy 座標をテキストとして、mediastreamsegmenter
ポート 4242 でリッスンしているポートに送信しています。現在、実際に Python スクリプトを使用してテスト データを送信しています。スクリプトは次のとおりです。
id3taggenerator
このスクリプトは、 CLIを使用して一連の xy 座標を送信しているだけです。量を 0.1 から 15に調整しましたsleep
が、違いはないようです。ストリームからメタデータを取得しているクライアント アプリケーションは、4 から 35 のポイントのみを出力しますが、すべての xy 座標を受信したことはありません。
フレームごとに送信できるメタデータの量に制限があるかどうか疑問に思っていますが、これらのツールのいずれに対してもハード制限値を指定するものを見つけることができないようです...
ios - iPad で非常に長時間の hls (m3u8 プレイリスト ファイル) が失敗する
mediastreamsegmenter (osx 上) でストリームをエンコードしていますが、約 15 ~ 20 時間のビデオまではすべて正常に動作し、その後はストリームが再生できなくなります。私は VOD の目的ですべてのセムジェントを保持しています。ipad の自分のアプリ (AVPlayer を使用) と ipad の safari で再生しようとしました - どちらも失敗します (別の ipad を試しました): AVPlayer は最初の数フレームを再生してから停止し、safari は「操作できませんでした」と言う完成する」。.m3u8 プレイリストは問題ないようです。問題はありません。同じストリームから mp4 ファイルも作成しました (ffmpeg を使用)。そのファイルは正常に再生されます。
.m3u8 ファイルの例を次に示します。
これは、HLS ストリームを作成するために使用しているコマンドです。
また、Mac OS X (Mavericks) のサファリで再生してみました - 正常に動作します。この問題の解決策/回避策を知っている人はいますか?
audio - ffmpeg と mediastreamsegmenter と vlc を使用した Apple HLS
Windows ボックスから ffmpeg ストリームを使用してストリーミングしようとしています。Windowsボックスで実行しているコマンドは次のとおりです
ffmpeg -f dshow -i audio=”Wave In 2 32130101 (Orban Optim” -acodec libmp3lame -ab 64k -f mpegts udp://172.30.16.181:2222?pkt_size=188?buffer_size=128000
この部分は機能し、VLC を介して Mac で聞くことができ、VLC からポート 20103 にストリーミングしています。
しかし、私が mediasegmenter mediastreamsegmenter -s 3 -f /Users/vickkrish/ 127.0.0.1:2222 を使用すると
2014 年 3 月 6 日 04:11:02.926: オーディオ pid が 44 に設定されました 2014 年 3 月 6 日 04:11:03.165: オーディオ pid が 44 に変更されました。 :11:03.583: audio pid が 44 Mar 6 2014 04:11:03.745: audio pid に変更されました44 Mar 6 2014 04:11:04.316: audio pid が 44 Mar 6 2014 04:11:04.492 に変更: audio pid が 44 Mar 6 2014 04:11:04.740 に変更: audio pid が 44 Mar 6 2014 04:11 に変更:04.887: オーディオ pid を 44 に変更 2014 年 3 月 6 日 04:11:05.175: オーディオ pid を 44 に変更 2014 年 3 月 6 日 04:11:05.338: オーディオ pid を 44 に変更 2014 年 3 月 6 日 04:11:05.582: オーディオ pid を 44 に変更
.ts ファイルは作成されません。