問題タブ [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.
sdl - WindowsでSDLまたはOpenMediaLayerを使用してMPEG-4H264をロードすることは可能ですか?
プログラムでMPEG-4H264ビデオフォーマットをロードしたい。誰かがそれを試したかどうか、またはWindowsのSDLまたはOpen MediaLayerAPIでそれが可能かどうかを知りたいです。
ffmpeg - MPEG4V1 データの処理に関するヘルプが必要
パケットの先頭にある MPEG4V1 ( Microsoft MPEG-4 VKI Codec V1 )データのチャンクを取得する必要がある状況にあります( DVR ユニットによって送信されました)。
パケット構造は次のようになります。
- 圧縮された MPEG4 データ。
- long integer - イベントとトリップワイヤーの数。
- long integer - イベントの数。
- イベント - イベントのシーケンス。
- long integer - トリップワイヤの数。
- Tripwire - Tripwires シーケンス。
- 長整数 - 巡回冗長コード (CRC)。
したがって、 MPEG4データがどこで終了するかを知る方法の指示はありません(またはそこにありますか? )、「イベントとトリップワイヤーの数」などのこの追加データの読み取りをどこから開始する必要があります...
実際のデータがどのように見えるかを確認できるように、2 つのパケットをアップロードしました: recvData1.txt、 recvData2.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 値を確認しましたが、正しい値でした..
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 または他の方法を使用してこの値を動的に取得/決定する方法...
directshow - DirectShow ソース フィルターのデコーダー フィルターでデコードできるように生の UDP パケットを処理する方法
長い話:
- H264/MPEG-4 ソースあり
- このソースを RTSP プロトコルに接続できます。
- RTP プロトコルで生の UDP パケットを取得できます。
- 次に、これらの未加工の UDP パケットを Decoder[h264/mpeg-4] [DS Source Filter] に送信します。
- しかし、これらの「生の」UDP パケットは、Decoder[h264/mpeg-4] フィルターではデコードできません。
まもなく:
H264/MPEG-4 デコーダ フィルタでデコードできるようにするために、これらの未加工の UDP データを処理するにはどうすればよいですか? H264/MPEG ストリームに必要な手順を明確に特定できる人はいますか?
追加情報:
私はFFmpegでこれを行うことができます...しかし、FFmpegが生データを処理してデコーダーでデコードできるようにする方法を実際には理解できません。
mpeg-4 - MPEG-4 ヘッダーについて
いくつかの MPEG-4 ビデオ ヘッダーを調べたところ、最初に以下のようなバイト配列がいくつか見られました。
部品は知っていますが、部品とは00 00 01
正確には何を意味するのでしょうか? 実際、このバイト配列を MPEG-4 ストリームの前に置くと、問題なく動作します。B0 B1
B5 89 13
しかし、これらの値が異なる mpeg-4 ストリーム ソースで機能するかどうかはわかりません。
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で機能しますが、機能性があまりないため、使用したくありません。つまり、カムの現在の画像やスナップショットを取得できないため、自分でやる。
javascript - Windows Media Player、h264 サポート、および Windows バージョン
h264 再生をそのまま (Windows Media Player で) サポートしている Windows のバージョンはどれですか? サポートが Javascript を介して利用可能かどうかを検出することは可能ですか?
Flash 経由で MPEG-4 ビデオ ファイルを提供しています。動画を保存したいというユーザーからのリクエストを受け取ります。ただし、[ダウンロード] ボタンが有効になっていると、Windows XP は MPEG-4 を再生できないため、ビデオが機能していないという苦情が表示されます。
または、platform.js を介してプラットフォーム検出を実装し、既知の悪いプラットフォームのダウンロード オプションを無効にすることもできます。
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 フレーム右に表示されます。
directshow - Rtpパケットまたは他の方法からストリームタイプを取得する
Rtspサーバーに接続してRtpパケットを取得する単純なRtspソースフィルターがあります。問題は、Rtspソースフィルターピンにメディアサブタイプを設定する必要があることです...[今度はサブタイプをハードコードします]
私が欲しいのは、来るストリームに応じてサブタイプを使用して動的にピンを作成することです。サーバーからh264およびmpeg-4ストリームを取得します。それらのrtpパケットペイロード形式は動的です:96...ストリームがmpeg4であるかh264であるかを識別するのに役立ちません...
FFmpegはコーデック情報からストリームタイプ[h264、mpeg4]を取得できます...しかし、どうすれば自分でできますか?
幸運をお祈りしています
rtsp - rtsp (mp4) ストリームから各フレームを抽出する
rtsp mp4 ストリームから各フレームを抽出し、ffmpeg を使用してそれを jpeg/gif に変換しようとしています。からsdpヘッダーを取得し、それをバイト配列に追加して000001b0.....000001b5
から、から始まるフレームをキャプチャしてバイト配列に000001b6
追加しています。
ファイル (.mpg) にフラッシュして ffmpeg を使用すると、エラーがスローされ、変換されません。私のヘッダーは次のよう000001B008000001B58913000001000000012000C488BA98514043C1463F
になり、この後、フレームを追加しています(から始まる000001b6
)。