問題タブ [mpeg2-ts]

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.

0 投票する
1 に答える
1248 参照

ffmpeg - エンコードせずに MPEG2-ts を変更するには?

Apple ストリーミング用の ts ファイル (MPEG2-TS 形式) が多数あります。ffmpeg を使用して、たとえばこのファイルの PTS/PCR パラメータを変更できますか?

0 投票する
1 に答える
1186 参照

ios - iOSでh264-mpegtsフォーマットを再生することは可能ですか?

サーバーはビデオを h264/aac にトランスコードし、同時にビデオ データをクライアントに送信します。動画データの再生と保存を同時に行うため、コンテナ形式としてmpegtsを使用しているのですが、ios MediaPlayerでmpegtsファイルを再生できないのが難点です。

Googleは、ffmpegのios-buildを使用してタスクを実行できると言っていましたが、やり過ぎのようです。iOS SDK だけを使用して iphone で mpegts を再生する他の方法はありますか?

0 投票する
1 に答える
912 参照

ios5 - MPEG2TS コンテナの H.264 ビデオ

H.264 (ベースライン プロファイル、レベル 3) でビデオをエンコードするハードウェア コーデックがあり、これを MPEG2 トランスポート ストリームにパッケージ化して、iDevices (HTTP ライブ ストリーミング) にストリーミングします。

私が抱えている問題は、ビデオが最新の iDevices (iPhone 4S/iPhone 5、iPad 2/3) でのみ再生され、古い iPhone または iPad 1 では再生されないことです (画面にはアクティビティがありますが、実際に近いものは何もありません)。ビデオ)。

さらに、それが機能する場合、ビデオはフレームレートの正確に 1/2 で再生されます (30 fps が 15 fps として再生されます)。

Mac Mini または Macbook Pro の Safari では、まったく問題はありません。VLC & mplayer も TS ファイルに問題はありません。

同じビデオを MP4 コンテナにパッケージ化すると、すべてのデバイスでビデオが適切に再生されます。

  1. この問題をデバッグする方法について何か提案はありますか?

  2. 何が起こっているのかを理解するのに役立つ、iPhone または iPad からデバッグ情報を取得する方法はありますか?

0 投票する
1 に答える
1005 参照

libav - LibAV Mpeg_TS ストリームに I フレームが含まれていないようです

YUV 420 ストリームを取得して MPEG2 に変換し、トランスポート ストリームとして UDP 経由で送信しようとしています。

変換は正しく行われているようです。出力を保存することで、再生可能な MPEG を作成できます。Wireshark で送信されたパケットを表示すると、プログラム アソシエーション、プログラム マップ テーブル (正しく表示されます)、および b フレームと p フレームを確認できます。I フレームは見えませんが、MPEG シーケンス ヘッダー パケットは見えます。

VLC を使用してストリームを表示できません (UDP://239.192.1.114:6677)

以下は、ビデオ パケットの変換と送信を示すコード スニペットです。

I フレームが表示されない理由についてのアイデアをいただければ幸いです。

0 投票する
2 に答える
21846 参照

c++ - MPEG2 プレゼンテーション タイム スタンプ (PTS) の計算

MPEG2 TS ファイルがあり、各画像フレームから PTS 情報を抽出することに関心があります。PTSはマーカー3ビットを含む33ビットで記述されていることは知っています。しかし、このビットフィールドをよりわかりやすい形式 (秒、ミリ秒) に変換する方法がわかりません。誰でも私を助けてくれませんか

0 投票する
1 に答える
2523 参照

rtp - MPEG2ストリームがRTP経由でMPEG-TSコンテナに入ってくるときにフレームエンドを見つける方法は?

RTPを介してMPEG2-TSストリームを受信して​​います。しかし、特定のフレームの終わりを見つけることができません。MPEG2ストリームのみがRTPを経由した場合、フレームの終わりがあるとRTPヘッダーのマーカービットは1に設定されますが、この場合、マーカービットは常に0です。誰か助けてもらえますか。 MPEG2-TS?

0 投票する
1 に答える
1243 参照

video - mpeg-2デコーダーを作りたい

最近、mpeg-2標準に興味を持っています。そして突然、mpeg-2デコーダーを作りたいと思いました。私はすでにトランスポートストリームやプログラムストリームのようなストリームパッケージングメカニズムをカバーするmpegシステム部分を研究しています。しかし、私はビデオとオーディオのエレメンタリーストリームの構造も知りたいです。私は実際に私が本当に自分のmpeg-2デコーダーを作りたいとあなたに言うつもりです。

mpeg-2システムの部分に関するすばらしい本はたくさんありますが、エレメンタリストリームの構造とそれらを適切に処理する方法をカバーする有用な本は見つかりませんでした。私が見つけたのは、ビデオがどのようにエンコードされるか、そしてあらゆる種類のエンコード技術を説明する本だけでした。

mpeg-2ファイルを処理しているときに実際に参照できる便利な本を提案していただけませんか。皆さんが喜んでやってくれることを願っています。

0 投票する
1 に答える
1271 参照

udp - .NET によるリアルタイム マルチキャスト データのバッファリングと処理

マルチキャストで受信した MPEG2-TS データを解析しようとしています。問題は、受信メソッドがパケットをスキップすることがあることです。これは、連続する Receive() メソッド間で行われる余分な処理に大きく依存していると思います [私が行った調査によると、CPU が Receive() メソッドにない場合、パケットは失われるため、バッファリングはすぐに処理しない最速のオプションであり、これを別のスレッドから実行するようにしておきます...私は正しいですか?].

現在、dequeue メソッドを使用して別のスレッドから後で処理するために、受信したデータグラムを保存するためにキューを使用しています。また、非同期レシーバーの代わりに、新しいスレッドで初期化されたブロッキング マルチキャスト レシーバーの使用に切り替えて、あるスレッドから別のスレッドへの委譲で遅延が発生しないようにしました (たとえば、OnReceiveFrom() メソッドを使用する場合)。

マルチキャスト レシーバーのコードは次のとおりです。

受信したすべてのデータグラムを文字通り .ts ファイルにダンプしても、VLC で再生中にピクセル化や音声のスキップに気付くことがあります。実際には、wireshark がすべてのパケットを順番に表示するため、パケットは NIC カードによって正常に受信され、ストリームは VLC で問題なく再生できます (ストリームを直接開く場合)。

結果を改善するために何をお勧めしますか?

0 投票する
1 に答える
3359 参照

c++ - 複数のビデオ ファイルを「その場で」単一の mpeg-ts ファイルにマージする

まず、私の下手な英語で申し訳ありません。C++ でビデオ ストリーミング サーバーを作成しています。1 つの TS-FILE として HTTP 経由でストリーミングする必要がある複数の mpeg2-ts ファイル (映画と広告) があります。問題は、すべての mpeg-ts ファイルに独自のタイムスタンプ (PCR、PTS、DTS) があることです。そして、私が理解しているように、連続したストリーミング フローを作成するには、すべての新しい PCR (PTS、DTS) 値が最後の PCR (PTS、DTS) 値から継続する必要があります。

これは、私が言っていることをよりよく理解するための写真です: http://i.stack.imgur.com/vL1m6.png (メッセージに私の写真を直接含めることはできません。申し訳ありません)

pcr`1、pcr`2、pcr`3 のタイムスタンプを新しいものに置き換える必要があります。たとえば、pcr3 タイムスタンプを含む ts-packet を送信し、さらにいくつかの ts パケット (PCR の値を含まない) を送信した後、アドバタイズメントを挿入したいと考えています。私の質問は、pcr`1、pcr`2、pcr`3 などの新しい値をどのように計算するのですか?

現在のビデオのビットレートを計算し、最後の PCR タイムスタンプ (この場合は pcr3) 以降にプログラムが送信したビット数をこのビットレートで割るのは正しいですか? つまり、(新しいタイムスタンプ) = (前のタイムスタンプ) + (ビット数) / (ビットレート) です。または、より効率的な方法はありますか?

PTS と DTS のタイムスタンプについては、これらのタイムスタンプが非線形になる可能性があることをここで読みました。最後に受け取った元の PCR と比較して計算するのは正しいでしょうか? つまり:

私のプログラムは、mpeg-ts ストリームでこれらのタイムスタンプを読み取って編集できます。幸いなことに、その方法に関する文献はたくさんあります。しかし、これらのタイムスタンプの新しい値を計算するにはどうすればよいでしょうか?

mpeg2-ts の仕様を学習し始めたばかりで、何か間違っている場合は訂正してください。前もって感謝します。あなたが私を理解してくれることを願っています。

0 投票する
0 に答える
650 参照

streaming - OS X と iOS を除いて、HLS H264/AAC ストリームは完全に機能しますか?

オープンソースのストリーミング サーバーを開発していますが、HLS の実装で問題が発生しています。

必要なストリームを TS に正常に変換し、HLS セグメントにセグメント化することができました。Apple プレーヤー (iPad、iPhone、Safari、Quicktime) を除いて、ほとんどすべてのプレーヤーで美しく再生されます。これらの場合、H264 エンコーディング設定は非常に慎重に選択する必要があり、Baseline/3.0 に固執している場合でも、目に見えるグリッチが見られることがあります。

AAC オーディオは、どのようにエンコードしても (ffmpeg の aac エンコーダーと libfkd_aac エンコーダーの両方がほぼすべての可能な構成で試行されました)、途切れ途切れに聞こえます。(繰り返しになりますが、これらのバージョンはすべて、Apple 以外のプレーヤーでも問題なく再生されます。) エンコード設定を変更すると、より良い結果が得られる場合がありますが、テストしたすべてのビデオで機能する組み合わせを見つけることができませんでした。 .

これにより、おそらく Apple ベースのプレーヤーは TS ストリーム自体に、私たちが正しく行っていない何かを必要としていると結論付けられます。この種の動作を引き起こす可能性のあるものはありますか? 参考までに、当社のパッケージャー/セグメンターによって出力された HLS テストストリームは次の場所にあります:リンク

フィードバックをお待ちしております。