問題タブ [ogg-theora]
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.
directshow - 自動 YUV -> カスタム デコーダー用 DirectShow の RGB
ネットで何時間も検索した後、私はこれに対する解決策を見つけるのに非常に必死です. YV12およびYUY2カラーモデルを出力するDirectShowでOGG Theoraデコーダーを起動して実行しました。
ここで、この出力用の RGB ピクセル操作フィルターを作成し、それをビデオ レンダラーに処理したいと考えています。thisと thisによると、それは本当に簡単で透過的であるべきですが、そうではありません。
たとえば、CheckInputType()
このチェックで実装しました:
そして、Theora と私のデコーダーの間にその MSYUV を挿入し、私のために仕事をしてくれることを期待します (つまり、RGB に変換します)。問題は、(GraphEdit アプリケーションで) 毎回エラーが発生することです。そして、入力としてYV12であると100%確信しています(デバッガーでチェック)。私が考えることができる唯一の説明は、AVI デコンプレッサについての言及ですが、それに関するそれ以上の情報はありません。
- この自動機能を利用するには、AVI コンテナを使用する必要があるということですか?
- 奇妙なことに、たとえば WMV ビデオ (出力に YUV を含む) で機能しますが、この OGG デコーダーだけが問題を抱えています。では、おそらく、この OGG デコーダーが何を見逃しているのかが問題になるでしょうか?
MSYUV フィルターがカラー スペース コンバーターとして機能しないのは残念です。つまり、GraphEdit で表示して直接使用できます...
これに関するヒントをいただければ幸いです。最後の手段として、独自の YV12 -> RGB コンバーターをプログラミングします。
c++ - ビットマップをフレームとして C\C++ の Ogg Theora に書き込む方法は?
ビットマップをフレームとして C\C++ の Ogg Theora に書き込む方法は?
ソース付きのいくつかの例は素晴らしいでしょう!)
ffmpeg - ffmpeg は未加工のビデオ シーケンスの未加工の Theora パケット/エレメンタリ ビット ストリームへのエンコードをサポートしていますか?
ffmpeg を使用して未加工のビデオ (yuv シーケンス) を未加工の Theora パケット、つまり Ogg コンテナーを使用しない「基本ビットストリーム」にエンコードする方法について質問があります。
ffmpeg を使用して生のビデオを Ogg theora ビット ストリームにエンコードすることはできますが、Ogg コンテナー ヘッダーのない生の Theora パケットで Theora ビット ストリームを取得する必要があります。
1) どうすればこれを達成できますか?
2)ffmpegを使用していない場合、必要なものを取得するための他の方法/ソリューション/ツールはありますか?
ありがとうございました。
-広告。
ffmpeg - Linux で構成された ffmpeg バージョン 0.5 は、Theora コーデックを使用したエンコードをサポートしていますか?
以下のバージョンの FFmpeg ソース コード バージョン 0.5 を構成し、コンパイルしました。
Linux ホスト上。
オプションを次のように指定して、theoraコーデックを使用してこのバージョンを使用して生のyuvビデオをエンコードしようとすると:
エラーが発生します:Unknown encoder 'libtheora'
しかし、FFmpeg Windows 実行可能ファイル (バージョンは FFmpeg バージョン SVN-r12665) で同じコマンドを使用すると、theora ビデオに適切にエンコードされます。
- Linux の ffmpeg バージョン 0.5 は theora エンコーダーをサポートしていませんか?
- Theora エンコーディングをサポートする Linux セットアップのバージョンはどれですか?
linux - Linux-gcc でコンパイルされた C コードの出力と MS-VS2008 でコンパイルされた出力の 1 ビットの違いを出力する理由は?
Windows(Intel x86アーキテクチャ)でVS-2008を使用してコンパイルされたTheoraビデオdeocderライブラリとアプリケーションがあります。このセットアップを使用して、theora ビット ストリーム (*.ogg ファイル) をデコードします。このデコーダー ライブラリのソース コードは、FFMPEG v0.5 ソース パッケージから使用され、windows-VS-2008 の組み合わせでコンパイルできるようにいくつかの変更が加えられています。
ここで、gcc を使用して構築した Linux (Intel x86 アーキテクチャ) 上の ffmpeg(V0.5) アプリケーションを使用して同じ theora ビットストリームをデコードし、デコードされた出力 yuv ファイルを取得すると、この出力ファイルは、から取得した出力と 1 ビットの違いがあります。 windows-VS2008 セットアップ、およびそれも出力ファイルの数バイトであり、すべてではありません。2 つの出力がビット一致することを期待していました。
私は以下の要因を疑っています:
a.) 2 つのコンパイラ gcc と MS-VS2008 の間でデータ型の不一致がありますか?
b.) コードが log、pow、exp、cos などのランタイム数学ライブラリ関数を使用していないことを確認しましたが、それでも私のコードには (a+b+c)/3.Could のような演算がいくつか含まれています。これは問題になりますか?
この「3 で割る」またはその他の数値の実装は、2 つの設定で異なる場合があります。
c.) ある種の丸め/切り捨ての影響が異なって発生していますか?
d.) Windows セットアップには存在しない makefile/configure オプションとして Linux に存在するマクロが欠落している可能性はありますか?
しかし、問題とその修正を絞り込むことはできません。
1.) 上記の私の疑問は有効ですか、またはこれらの 2 つの異なるセットアップによって生成される出力にこれらの 1 ビットの違いを引き起こす可能性のある他の問題がある可能性があります。
2.) これをデバッグして修正するにはどうすればよいですか?
linux-gcc セットアップと Windows MS コンパイラの出力の違いに関するこのシナリオは、一般的なコードにも当てはまります (ビデオ デコーダ アプリケーションの場合に必ずしも固有ではありません)。
これに関しては、どんな指針も役に立ちます。
ありがとう、
-広告
firefox - Firefox 3.6 での Ogg (theora / vorbis) の再生
Chrome 用の MP4 (動作中)、Firefox 用の OGG (失敗中)、および Internet Explorer 用の Java アプレットを介した同じ ogg (動作中) を含む、この html5 コードがあります。
p>Firefox では、X が中に入った灰色のボックスが表示されます。ファイル「vernissage_cpal_2009.ogv」は、VLC などの通常のメディア プレーヤーでも問題なく再生されます。
firefox - Safari と Firefox での HTML5 ビデオ (mp4 と ogv) の問題 - ただし、Chrome はすべて問題ありません
次のコードがあります。
- 私はRailsを使用しています(開発ではMongrel、本番ではMongrel + Apache)。
- Chrome (Mac および Win) は、ローカルまたは実稼働サーバーからいずれかのファイルを再生できます (1 つのソース タグでテストしてから、他のソース タグでテスト)。
- Safari (Mac および Win) は mp4 ファイルをローカルで正常に再生できますが、本番環境からは再生できません。
- Firefox 3.6 は、どちらの OS でもビデオを再生しません。ビデオ プレーヤー領域の中央に灰色の十字が表示されます。
- それぞれのケースで Mongrel と Apache の両方に正しい MIME タイプが設定されていることを確認しました。
- Chrome の結果から、ビデオ ファイルや、ファイルが要求または配信される方法に本質的な問題がないことがわかりました。
Firefox については、https://developer.mozilla.org/En/Using_audio_and_video_in_Firefoxを参照して、「エラー」イベントと「エラー」属性を参照しています。「エラー」イベントはすぐにスローされるようで、その時点ではエラー属性はありません。問題を診断する方法を知っている人はいますか?
php - OGX (ビデオ) ファイルを分割するにはどうすればよいですか?
シーク位置 (スクリプトにパラメーターとして送信) に基づいて、特定の .ogx ファイルを配信する PHP スクリプトを作成しようとしています。目的は、サーバー側シーク機能を備えた HTML5 ビデオ プレーヤーを作成することです。
コンテナー形式を少し調べて、シーク位置 (バイト単位) の前に発生する "OggS" 文字列の最初のインスタンスからデータの配信を開始するように .php スクリプトを作成しました。
問題は、私の新しい .ogx ファイルが「OggS」文字列で始まる場合でも、シーク位置が 0 以外である限り、HTML5、VLC、またはその他のプレーヤーで完全に再生できないことです。
シーク位置を 0 に設定すると、スクリプトはファイル全体を提供し、再生可能になります。
では、有効なビットストリームを生成しながら .ogx ファイルの先頭をトリミングするにはどうすればよいでしょうか?
video - 音声なしで 2 つの theora ビデオ ファイルをマージする場合の Theora 顆粒
Theoraコーデックで圧縮されたビデオ(ビデオの再圧縮なし)を含む2つのファイルをサウンドなしでマージする必要があります。これを行うには、各ファイルを解析し、内部のパケットを見つけ、パケットヘッダーのフラグ5ビットを0(継続フラグ)に変更し、すべてのパケットに設定します同等のシリアル。このメトンは問題なく動作しますが、granulepos には問題があります。グラニュル pos で私を助けてください、私はそれを正しく設定するために多くの方法を試みます (たとえば、ミリ秒のように設定します) が、これは役に立ちません。教えてくださいgranlleposパラメータとshowindとは何ですか?各フレーム間の時間が300ミリ秒であるよりも、granuleposを設定する方法を教えてください。ありがとう!
c - libogg を使用して Vorbis および Theora ストリームを多重化する方法
私は現在、libogg、libvorbis、および libtheora を使用する単純な Theora ビデオ エンコーダーを作成しています。現在、フレームを Theora エンコーダーに送信し、PCM サンプルを Vorbis エンコーダーに送信し、結果のパケットを Ogg ストリーム (1 つは Theora 用、もう 1 つは Vorbis 用) に渡し、ページを取得できます。
プログラムが開始すると、最初に Theora エンコーダーからヘッダーをフラッシュし、次に Vorbis エンコーダーから出力ファイルにフラッシュします (明らかに、両方のストリームに固有のシリアル番号があります)。次に、インターリーブされたページを両方のストリームからファイルに書き込みます。
ビデオのみ、またはオーディオのみを書き込む場合、出力を mplayer で問題なく再生できますが、両方を書き込もうとすると、次のようになります。
Ogg demuxer エラー: 不明なストリームに遭遇しました
多重化が間違っていると思います。Xiph.org でストリームの多重化に関するドキュメントを読みましたが、どこが違うのかわかりません。これを行うためのサンプルコードを見つけることができないようですが、オープンソースのエンコーダーのソースを調べることはできません (理解に問題があります)。libogg を使用してストリームを正しく多重化する方法を説明できる人はいますか? Ubuntu リポジトリのライブラリを使用して、Ubuntu 10.04 の C でこれを実行しようとしています。
よろしくお願いします!
トム