問題タブ [matroska]

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

c# - C# でのオーディオとビデオの多重化

個別のオーディオ ストリームとビデオ ストリームを 1 つのコンテナーに結合する方法を探しています。

具体的には、VP8 ビデオ (webm コンテナー) と 16 ビット PCM オーディオ (wav コンテナー) があり、これらを組み合わせて Matroska コンテナーにしたいと考えています。

これまでのところ、ストリームをファイルに保存し、必要な結果を生成するプロセス API を使用して ffmpeg.exe を呼び出すことでこれを実現できますが、中間ファイルをディスクに保存したり、 ffmpeg.exe がサーバー上にある必要があります。どんな助けでも大歓迎です!

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

mkv - matroska/mkv の期間フィールドを手動で変更する方法

有効な期間のない mkv ファイルが 1 つあります。この期間パラメータを手動で変更したい。http://www.matroska.org/technical/specs/index.htmlで定義されているこの matroska 仕様を確認しました

matroska の仕様を見ると、これには識別マジック番号しか含まれていませんが、データの長さは指定されていません。

この matroska ヘッダーを解析して期間フィールドを取得し、このフィールドを変更するにはどうすればよいですか?

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

c++ - matroska (mkv、webm) からオーディオ (libvorbis 経由の C++) へのループ ロジックのデコード

(私は英語に堪能ではありませんが、最善を尽くします)

シンプルな mkv プレーヤーをコーディング (C++) しようとしています。私はこのテーマにとても慣れていないので、必要なものはすべて少しずつ発見しています。最初は、ビデオに VP8 コーデック、オーディオに Vorbis を使用します。動画側は今のところ問題ないようですが、音声に困っています。

libvorbisを使用してmkvparserから取得したオーディオ フレームをデコードするためのループ ロジックがわかりません。このサンプルこの簡単な説明を調べましたが、私の場合はうまくいきません。そして、他の簡単な例は見つかりませんでした。

これが私のコードの一部です:

そして、フレームを取得する方法は、オーディオではなくビデオに適しているかもしれません...

それについて共有するための良いリソースを知っていますか? またはいくつかのアドバイス?

手伝ってくれてありがとう !

[編集] : 私の試みの 1 つを追加するのを忘れていました:

私のogg_pageが正しく初期化されていないため、 ogg_sync_pageoutでクラッシュします。しかし、私が見つけた例のように適切な .ogg ファイルから来ていないため、vorbis 構造を正しく初期化する方法がわかりません。

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

video - フレーム解像度の異なる VP8 トラックを h264 に変換する方法

外部サービス (TokBox Archiving) によって WebRTC ストリームから記録された、VP8 トラックを含む .webm ファイルがあります。ストリームは適応型であるため、トラック内の各フレームは異なる解像度を持つ可能性があります。ほとんどのプレーヤー (Webkit ブラウザー内) は、トラックの説明 (常に 640x480) のビデオ解像度を使用し、フレームをこの解像度にスケーリングします。Firefox と VLC プレーヤーは実際のフレーム解像度を使用し、それぞれビデオ解像度を変更します。

私は2つの目標を達成したい:

  1. 追加のプラグインをインストールせずに、このビデオを Internet Explorer 9 以降で再生してください。
  2. フレームの解像度を 1 つの固定解像度に変更すると、ビデオが異なるブラウザーで同じように表示されます。

だから、私の計画は次のとおりです。

  • ソース webm ファイルから実際のフレーム解像度 (PNG や BMP など) の画像にフレームを抽出します (どうすればそれができますか?)
  • 画像の最大幅と最大高さを見つける
  • 画像に黒いパディングを追加して、小さいフレームが新しいフレームの中央に来るようにします (サイズ MAX_WIDHTxMAX_HEIGHT)
  • ffmpeg を使用して画像を h264 トラックに結合する

すべて正しいですか?どうすればこれを達成できますか?このアルゴリズムを何らかの方法で最適化できますか?

画像を抽出するために ffmpeg を試しましたが、トラック ヘッダーの解像度を使用して、実際のフレーム解像度を解析しません。いくつかの libwebm 関数が役立つと思います (フレーム ヘッダーを解析して画像を抽出するため)。多分誰かがこれを行うためのコードスニペットを持っていますか?

例 .webm (ソースをダウンロード、Google 変換バージョンは再生しない): https://drive.google.com/file/d/0BwFZRvYNn9CKcndhMzlVa0psX00/view?usp=sharing

TokBox サポートからのアダプティブ ストリームの公式説明: https://support.tokbox.com/hc/en-us/community/posts/206241666-Archived-video-resolution-is-supposed-to-be-720x1280-but-reports -as-640x480

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

video - Gstreamer: mastroskamux エラー: リンクされていません

h264 でエンコードされ、matroskamux で多重化されたビデオを再生しようとしましたが、再生できません。私は組み込みプラットフォーム、iMX6 を使用しています。

私のパイプラインは gst-lauch で動作します:

Cで作ったのですが、うまくいきません。エラー処理を削除しましたrep。すべての要素を含む構造を使用します。

ビデオが表示されず、アプリケーションが停止します。GST_DEBUG=4 を使用すると、多くのデバッグが行われますが、最後の行では:

「時々」ソースパッドがあるため、デマルチプレクサのパッドのリンクを強制しようとしました。

それを機能させるためにどのように進めればよいかわかりません。助けてくれてありがとう。

EDIT:ここにログファイル。これはリンクの問題です。解決方法がわかりません。