問題タブ [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.
iphone - Cocoa Touch: ビデオ ファイルから静止ポスター フレームをキャプチャしますか?
動画を録画するアプリがあります。インターフェイスに各ビデオが表示されます。各ビデオを表す小さなサムネイルが必要です。OS X はビデオのプレビューを表示します。これは、ファイルに数秒間取り込まれたポスター フレームです。私は似たようなことをしたいと思います。「ポスター フレーム」と呼ばれていると聞いたことがありますが、Google はこれをサポートしていません。
これを行うのに役立つ適切な API を教えてもらえますか?
ありがとう、
アーロン
c - Remux MPEG TS -> RTP MPEG ES
私のプログラム (C で書かれたもの) で次の結果を達成するために私を導いてください: HTTP MPEG TS ストリーム (コーデック h264 & aac) としてストリーム ソースがあり、1 つのビデオと 1 つのオーディオ サブストリームがあります。RTP 経由で RTSP クライアントに送信するには、(同じコーデックの) MPEG ES フレームを取得する必要があります。libavformat が RTP ヘッダー付きのフレームを提供するのが最善です。私が知っているように、Blackberry電話のメディアプレーヤーはTSを再生しないため、MPEG ESが必要です(私は試しました)。ただし、h264とaacを保持でき、ブラックベリーやその他の電話でうまく再生できる、この状況で入手しやすい別の形式を誰かが教えてくれたらありがたいです。
ストリームを開き、FLV コンテナーに再多重化する他のタスクは既に成功しています。
「rtp」形式で 2 つの出力形式コンテキストを開こうとしましたが、フレームも取得しました。クライアントに送信されます。失敗。
また、フレームを「m4v」AVFormatContextに書き込んで、フレームを取得し、NALでカットし、各フレームの前にRTPヘッダーを追加して、クライアントに送信しようとしました。クライアントが最初のフレームを表示してハングするか、10 秒以上ごとに 1 秒間のビデオとオーディオを (必要以上に速く) 再生します。VLC プレーヤーのログには次のようなものがあります: http://pastebin.com/NQ3htvFi
簡単にするために、タイムスタンプを 0 から開始するようにスケーリングしました。VLC (または覚えていない Wowza) がオーディオ TS を 1920 ではなく 1024 ずつインクリメントしたものと比較したので、他のストリーマーと同様になるように追加の線形スケーリングを行いました。bigbuckbunny_450.mp4 の再生のパケット ダンプはこちら: ftp://rtb.org.ua/tmp/output_my_bbb_450.log
ところで、どちらの場合も、Wowza または VLC から SDP をほとんどコピーしていません。
必要なものを取得する正しい方法は何ですか? libavformatに似たライブラリがあるかどうかも興味がありますか? 胚の状態でもかまいません。
ffmpeg - デコーダーの完全なコピーを作成するにはどうすればよいですか?
mpeg4 ビデオ ストリームのカスタム実装用のビデオ デコーダー (FFMPEG/AVCodec を使用) を作成しています。このビデオ ストリームの特異性は、同じ親に基づいて多くの P フレームを作成する多くの「息子」ストリームに分割できることです。デコードしようとしているビデオ ストリームは、実際には一種の「ビデオ ツリー」です。このようなもの:
1 つのパスをたどることに決めたときに正常に動作する基本的なデコーダーを既に作成しました。問題は、ビデオ ツリー内の複数のパスをたどろうとした場合です。この時点で、デコーダーを「フォーク」して、2 つの異なるビデオ ストリームを追跡する必要があります。分割はキー フレームの後だけでなく、P フレームの後でも発生する可能性があるため、AVCodecContext を複製する必要があります (私は を使用しますavcodec_copy_context
) が、クリーン ステータスから新しいデコーダを作成するようです..以前のビデオ ステータスを無視しているようです、したがって、デコードされた P フレームは空のビデオ フレームに「適用」されます。おそらく使用してコンテキストをコピーするavcodec_copy_context
だけでは不十分です...何か提案はありますか? デコーダーのコンテキストと完全なステータスを複製するにはどうすればよいですか? または、参照を使用してストリームをデコードする他の方法はありますか? ありがとう!
python - GStreamer: Python バインディングのステータスと、オーディオが混在するビデオのエンコード
Python から生成されたビデオ (非リアルタイム) を書き込み、それを外部オーディオ ファイル (MP3) と同時にミックスする方法を見つけたいと思っています。
GStreamer Python バインディングの現在のステータスはどうなっていますか? それらは最新ですか?
GStreamer を使用して MPEG-4 出力を書き込み、Python から生の画像フレームをフィードすることは可能でしょうか?
GStreamer が MP3 オーディオも読み取ってコンテナーにミックスするようにパイプラインを構築することは可能ですか?結果のビデオ トラックを ffmpeg などで再処理する必要はありません。オーディオ トラックを持つ外部ツール
Python で GStreamer を使用するための最新のチュートリアルはありますか? (2006 年から 2009 年以降の日付は見つかりませんでした)
(私の古い質問: OpenCV + Python + Macでビデオを書くという良い指針を実際には与えませんでした)
definition - MPEG-4(RTP)の「VOP」とは何ですか?
私はMPEG-4RTPパケットRFC(http://www.rfc-editor.org/rfc/rfc3016.txt)を読んでいて、非常に頻繁に単語を見つけています
VOP
ネットやRFCで定義が見つかりませんでしたが、このVOPが何であるかを誰かに教えてもらえますか?
performance - MJPEG と MPEG-4 のエンコード時間
スマート カメラのエンコード パフォーマンス (MPEG-4 および MJPEG) をテストしています。アプリケーションがカメラから画像をキャプチャし、それらを目的のエンコード形式にエンコードするエンコードを実行するために、OpenCV/FFMPEG でアプリケーションを作成しました。ベンチマークでは、MJPEG エンコーディングは MPEG-4 エンコーディングよりもはるかに時間がかかることがわかりました。私はそれが逆であることを期待していました。1 つのフレームを MPEG-4 にエンコードするには約 31 ミリ秒かかりますが、MJPEG にエンコードするには約 80 ミリ秒かかります。MJPEG は、MPEG-4 に比べて本当に時間がかかるのですか?
h.264 - H.264 NALU をラップするときの構成時間 (CTS)
h.264 ハードウェア圧縮カードは、キャプチャしたビデオから NALU を処理します。
NALU を FLV にラップしようとしていますが、ほぼ成功しています。
NALU ごとに FLV の合成時間フィールドに入力する方法がわかりません。
FLV 仕様、http: //download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf、E.4.3.1 によると。
CompositionTime 合成時間のオフセット
構成時間の説明については、ISO 14496-12、8.15.3 を参照してください。FLV ファイルのオフセットは常にミリ秒単位です
次に、ISO 14496-12,8.15.3の 24 ページと 26 ページを調べます。
デコード時間と合成時間の間のオフセットを提供します。デコード時間は合成時間よりも短くなければならないため、オフセットは CT(n) = DT(n) + CTTS(n) のような符号なし数値として表されます。ここで、CTTS(n)はサンプル n の (圧縮されていない) テーブル エントリです。
各 NALU の DT と CTTS を知るにはどうすればよいですか? またはDTとCTTSなしでCTを計算する方法は?
ありがとうございました
parsing - ffmpegを使用して.movからフレームごとに解析する
.movファイルからH.264フレームを解析しようとしています。私は、AVFormatのmov.c(FFMPEGの一部)が進むべき道であるという結論に達したと思います。ただし、mov.cは、コメントされていないコードの横にある約2600行です。私はFFMPEGの使用例を探しています。特に、あらゆるファイルタイプの構造を解析しています。構造が非常に似ているため、MPEG4でもQuicktimeムービーでも構いません。
既存の例がない場合(私は何も見つかりません)、誰かがそれを使用して数行のコードを教えてくれたり、開始方法を説明したりできますか?
私がやろうとしていること:AVCaptureSessionを使用してビデオカメラからサンプルをキャプチャし、これらのサンプルをH264でエンコードし、AVAssetsWriter、AVAssetsWriterInput、AVAssetsWriterInputPixelBufferAdaptorを使用してファイルに書き込みます。その理由は、アップルがこれを許可しないため、ハードウェアH264エンコーディングに直接アクセスできないためです。私が今やらなければならないこと(私はよくわからないと思います)は解析されます:
.movファイルの「 mdat」 -atom(ムービーデータ、複数あると思います)。次に「vide」-atom、次にvide-atom内(ビデオデータサンプル、複数ある場合があります)。私が信じているのはフレームであるいくつかの原子があると思います。これらは「avc1」タイプになります(これはH264のタイプです)。私はまだこれをすべて正しく取得していないと確信しているので、これで私を修正してください。
私の質問は、どのようにして単一のフレームを解析するのかということです。私はドキュメントを読んでいて、 iFrameExtractorを見てきました(フレームをデコードするのであまり役に立ちません)。FFMPEG-AVFormatのmov.cを使用することになっているときは正しく理解できたと思いますが、よくわかりません。
編集:私は今このようにしようとしています:
わずかに縮小されたinit関数iiFrameExtractorを実行して、.movファイルでビデオストリームを検索します。
次のようなフレームのデータを取得します。
/li>
次に、それをNSOperationのサブクラスに渡し、アップロードを待機するために保持されます。しかし、EXC_BAD_ACCを受け取りました。フレームからデータをコピーするときに、何か問題がありますか?何か案は。NSData* frame
(nonatomic、retain)-propertyを使用してクラス変数を設定しようとすると、EXC_...が取得されます。(合成行にEXC_BAD_ACCと表示されます)
python - pygst による手続き型 MPEG-4 ビデオの作成
pygst を使用して MPEG-4 ビデオ ファイルを作成する方法を見つけたいと思っています (他のフレームワークも提案できます)。
質問には 3 つの部分があります
Python フレーム バッファから pygst パイプラインで生成されたビデオ データをフィードする方法
このストリームを MPEG-4 ファイルに保存する方法
このストリームを MP3 オーディオ ソースとミックスする方法
以下の疑似コード:
より詳しい情報:
http://lists.freedesktop.org/archives/gstreamer-devel/2011-August/032609.html
video - MPEG4/H.263 エンコード後の奇妙なピクセレーション/縦線
組み込みデバイスの USB カメラからビデオ データ (H.263 および MPEG4) をエンコードしようとしています。デバイスには、それを行うための特別なハードウェアがあります。
しかし、USB カメラ (H.263/MPEG4) から生のビデオをエンコードした後、ビデオの品質が低下し、奇妙なピクセル化や縦線がビデオに発生します。この画像では、煩わしい縦線が見られます。2 番目の画像は、生のビデオとエンコードされたビデオを一緒に表示する例です。右側が生データ(高品質)の表示結果、左側がエンコード後の表示です。この問題は既知のパターンですか? これらの縦線の原因は何ですか?
USB ビデオ データのプロパティ: 15 fps、QCIF、YUV420P。
ちなみに動画を半角領域(SDLあり)で表示するとかなり画質が良くなりますが、これは、88x144 の長方形に QCIF ビデオを表示しています。表示領域の高さを変えても画質が変わらない。
ありがとう。