問題タブ [mpeg-4]

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 に答える
2499 参照

sdl - WindowsでSDLまたはOpenMediaLayerを使用してMPEG-4H264をロードすることは可能ですか?

プログラムでMPEG-4H264ビデオフォーマットをロードしたい。誰かがそれを試したかどうか、またはWindowsのSDLまたはOpen MediaLayerAPIでそれが可能かどうかを知りたいです。

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

ffmpeg - MPEG4V1 データの処理に関するヘルプが必要

パケットの先頭にある MPEG4V1 ( Microsoft MPEG-4 VKI Codec V1 )データのチャンクを取得する必要がある状況にあります( DVR ユニットによって送信されました)。

パケット構造は次のようになります。

  • 圧縮された MPEG4 データ
  • long integer - イベントとトリップワイヤーの数。
  • long integer - イベントの数。
  • イベント - イベントのシーケンス。
  • long integer - トリップワイヤの数。
  • Tripwire - Tripwires シーケンス。
  • 長整数 - 巡回冗長コード (CRC)。

したがって、 MPEG4データがどこで終了するかを知る方法の指示はありません(またはそこにありますか? )、「イベントとトリップワイヤーの数」などのこの追加データの読み取りをどこから開始する必要があります...

実際のデータがどのように見えるかを確認できるように、2 つのパケットをアップロードしました: recvData1.txtrecvData2.txt

avcodec_decode_video 関数を備えた FFmpeg ライブラリを使用してこれらのパケットをデコードしようとしましたが、結果を期待してrecvDataバッファーの末尾からバイトごとに削除しました
が、FFmpeg は常に次のようなエラー メッセージを返しました。

「[msmpeg4v1 @ 038865a0] 無効な開始コード」、「[msmpeg4v1 @ 038865a0] ヘッダーが破損しています」。

私は MPEG4 が内部からどのように動作するかを知る専門家ではありませんが、エラー メッセージから判断すると、バッファの先頭でデコードするためのデータが欠落していることは明らかです。

だから私はここで取得しているMPEGデータのどの部分/種類がわかりません..
おそらくそれは、「終了」表示などを備えたある種のMPEGの「フレーム」データですか?

recvDataバッファーの開始点を、ネット "http://www.trekmania.net/clips/video_clips4.htm" で見つけた MPEG4V1 でエンコードされたビデオ ファイルの一部と比較して、バッファーの開始点に実際に含まれているかどうかを確認しました。 MPEG データ..ある種の DVR ベンダー固有のものではありません..

そして、ある種のヘッダーか何かのように見える約 20 バイトのデータ (パケット データの開始時、および約 180 バイトの直後の .avi ファイル内) があることに気付きました..

この画像を確認してください: "http://ggodis.gamedev.lt/stackOverflow/recvData.jpg"

MPEG4V1 データのこの部分が何を表しているか知っている人がいるでしょうか?

PS ..受信したパケットの CRC 値を確認しましたが、正しい値でした..

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

ffmpeg - MPEG-4 ビデオ ストリームを使用した DirectShow RTSP SourceFilter

FFmpeg を使用して単純なダイレクト ショー ソース フィルターを作成します。RTSP ソースから rtp パケットを読み取り、デコーダーに渡します。h264 ストリームで動作します。

悪いニュースは、MPEG-4 では機能しないことです。 rtsp ソース フィルタを MPEG-Decoder に接続できます。例外はありませんが、ビデオ レンダラーには何も表示されません。実際には、1 つのフレームだけを表示し、何も表示しない[ただ停止する]... デコーダーとレンダラーはサードパーティであるため、デバッグできません。

FFmpeg を使用して、MPEG-4 RTSP ソースから rtp パケットを正常に取得できます。問題はありません。

H264 ストリームには必要ありませんが、MPEG-4 ストリームには重要かもしれない Rtsps ソース フィルターに何か (?) を設定していないようです

この h264 ストリームと MPEG-4 ストリームの違いがダイレクト ショー rtsp ソース フィルタで発生する原因は何ですか? 何か案は。

より詳しい情報:

-- 最初に、MPEG-4 ストリーム用の他の rtsp ソース フィルタをいくつか試します...私の rtsp ソースは同じですが、ピン接続に異なるサブタイプが見られます。

-- 2 つ目は、ソースが本当に MPEG-4 であるか疑わしいので、FFmpeg で確認します...FFmpeg は、ソース コーデック ID を「CODEC_ID_MPEG4」として提供します。

更新: [ハック]

m_bmpInfo.biCompression = DWORD('xvid') を設定しただけで、正常に機能しました...しかし、静的です。 ffmpeg または他の方法を使用してこの値を動的に取得/決定する方法...

0 投票する
4 に答える
48977 参照

directshow - DirectShow ソース フィルターのデコーダー フィルターでデコードできるように生の UDP パケットを処理する方法

長い話:

  1. H264/MPEG-4 ソースあり
  2. このソースを RTSP プロトコルに接続できます。
  3. RTP プロトコルで生の UDP パケットを取得できます。
  4. 次に、これらの未加工の UDP パケットを Decoder[h264/mp​​eg-4] [DS Source Filter] に送信します。
  5. しかし、これらの「生の」UDP パケットは、Decoder[h264/mp​​eg-4] フィルターではデコードできません。

まもなく:

H264/MPEG-4 デコーダ フィルタでデコードできるようにするために、これらの未加工の UDP データを処理するにはどうすればよいですか? H264/MPEG ストリームに必要な手順を明確に特定できる人はいますか?

追加情報:

私はFFmpegでこれを行うことができます...しかし、FFmpegが生データを処理してデコーダーでデコードできるようにする方法を実際には理解できません。

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

mpeg-4 - MPEG-4 ヘッダーについて

いくつかの MPEG-4 ビデオ ヘッダーを調べたところ、最初に以下のようなバイト配列がいくつか見られました。

部品は知っていますが、部品とは00 00 01正確には何を意味するのでしょうか? 実際、このバイト配列を MPEG-4 ストリームの前に置くと、問題なく動作します。B0 B1B5 89 13

しかし、これらの値が異なる mpeg-4 ストリーム ソースで機能するかどうかはわかりません。

0 投票する
4 に答える
5524 参照

c# - ストリームを取得し、ffmpegを使用してIPカメラからjpeg(画像)ファイルとして保存します

Ip Cameraからストリームを取得する方法、RTPを使用、ストリームはMPEG4、マルチキャストアドレスとポート、IPカメラのIPアドレスとポート番号を持っています。
また、たとえばhttp(http:// ip / jpeg)経由では到達できません。また、VLCPlayerでもストリームに到達できません。たとえば、(rtp:// ipadressofcam:port)と(rtp:// multicastaddress:port
では、そのffmpegコマンドとは何ですか?
私はWindowsOSを持っていますが、現在はC#でのみコードを記述しています。
しかし、プロデューサーはカムの表示に使用する独自のocxを作成しました。そのプラグインは、.netで機能しますが、機能性があまりないため、使用したくありません。つまり、カムの現在の画像やスナップショットを取得できないため、自分でやる。

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

javascript - Windows Media Player、h264 サポート、および Windows バージョン

h264 再生をそのまま (Windows Media Player で) サポートしている Windows のバージョンはどれですか? サポートが Javascript を介して利用可能かどうかを検出することは可能ですか?

Flash 経由で MPEG-4 ビデオ ファイルを提供しています。動画を保存したいというユーザーからのリクエストを受け取ります。ただし、[ダウンロード] ボタンが有効になっていると、Windows XP は MPEG-4 を再生できないため、ビデオが機能していないという苦情が表示されます。

または、platform.js を介してプラットフォーム検出を実装し、既知の悪いプラットフォームのダウンロード オプションを無効にすることもできます。

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

rtsp - RTP ペイロードからの MPEG4 抽出

rtp ペイロードから mpeg4 を抽出しようとしています。rtsp メディア (ビデオ) の形式は MP4V-ES ですが、ペイロードから mp4 を抽出できません。抽出物を生ファイルにダンプし、ffmpeg を使用して .avi または .mpg に変換すると、機能しません。ここで何が欠けているのかわかりません。コードはJavaで書かれています。rtp から各ビデオ フレームを抽出し、それをファイルに保存するか、再送信したいと考えています。

ありがとう

質問の更新..... 入力していただきありがとうございます。実際には 000001b6 からバイトを抽出して ffmpeg に送信できましたが、ヘッダー情報ではないというエラーが表示され、 000001b0 00000000 および 000001B5 00000005 でヘッダーを作成して送信しましたffmpegにですが、運がありません。RTP から取得しているのは 000001b6 [データ] であり、再び 000001b6 [データ] であるため、ここで助けてもらえますか? 私はここに何かが欠けています! また、RTPから取得したものは実際のmpeg4データであるため、デコード/エンコードする必要があるかどうかを知りたいのですが、デコードする理由がわかりません。ファイルに保存して、quicktimeまたはVLCで開くことができますか1 フレーム右に表示されます。

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

directshow - Rtpパケットまたは他の方法からストリームタイプを取得する

Rtspサーバーに接続してRtpパケットを取得する単純なRtspソースフィルターがあります。問題は、Rtspソースフィルターピンにメディアサブタイプを設定する必要があることです...[今度はサブタイプをハードコードします]

私が欲しいのは、来るストリームに応じてサブタイプを使用して動的にピンを作成することです。サーバーからh264およびmpeg-4ストリームを取得します。それらのrtpパケットペイロード形式は動的です:96...ストリームがmpeg4であるかh264であるかを識別するのに役立ちません...

FFmpegはコーデック情報からストリームタイプ[h264、mpeg4]を取得できます...しかし、どうすれば自分でできますか?

幸運をお祈りしています

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

rtsp - rtsp (mp4) ストリームから各フレームを抽出する

rtsp mp4 ストリームから各フレームを抽出し、ffmpeg を使用してそれを jpeg/gif に変換しようとしています。からsdpヘッダーを取得し、それをバイト配列に追加して000001b0.....000001b5から、から始まるフレームをキャプチャしてバイト配列に000001b6追加しています。

ファイル (.mpg) にフラッシュして ffmpeg を使用すると、エラーがスローされ、変換されません。私のヘッダーは次のよう000001B008000001B58913000001000000012000C488BA98514043C1463Fになり、この後、フレームを追加しています(から始まる000001b6)。