問題タブ [x264]

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 投票する
2 に答える
2016 参照

ffmpeg - x264 エンコード ファイルでの vlc 再生の歪み

ffmpeg を使用して、Web カメラから生のビデオを RGB 形式でキャプチャしました。

この raw ビデオ ファイルは mplayer で問題なく再生されます。

x264 を使用してこのファイルをエンコードします。

ただし、vlc で webcam.mkv を再生しようとすると、インターレースされた歪んだ画像になります。

何が間違っているのかわかりません。

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

iphone - x264 エンコーディングの高速化

x264を使用して、iPhoneカメラからキャプチャした生データをエンコードしています..しかし、エンコードは非常に遅いです.エンコード速度を加速するのを手伝ってくれる人はいますか.

次の設定を使用して x264 lib をビルドしました。

//armv6 の場合

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv6' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv6' --enable-pic --disable-asm

//armv7 の場合

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc ./configure --host=arm-apple-darwin --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3 .sdk --prefix='dist' --extra-cflags='-arch armv7' --extra-ldflags=-L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/lib /system/ --extra-ldflags='-arch armv7' --enable-pic

次のようなデフォルトのプリセットを使用しています。

そして、いくつかのパラメータを設定します:

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

android - Android での GStreamer x264enc および SIGSEGV

私は GStreamer-java をいじろうとしていますが、これは Android の h.264 エンコーダー (x264enc) です。

ここで、テスト ビデオ ソースから未加工のビデオをエンコードしようとしました (そのis-liveプロパティをTRUEに設定)。データが x264enc 要素に流れ始めると、libx264.so で SIGSEGV が取得され、アプリがクラッシュします。そして、コードが NULL を逆参照しているように見えます...正確なエラーの場所は、ファイル「gstreamer_ndk_bundle/x264/encoder/analyse.c」の 963 行目です。そして、この行です。

私のデバイスの CPU は Cortex 8 で、NEON 機能を備えています...

すべての構造体フィールドをファイルに出力しようとしましたhが、初期化されていないフィールドはありません。

LogCat からの Android DEBUG 情報: HERE

私の質問:

  1. このコード行は問題ないように見えるので、SIGSEGV をスローしているものをどのように知ることができますか?
  2. これは既知のバグですか、または ARM CPU 上の x264 エンコーダーの予想される動作ですか? または、エンコーダーの構成が不足していますか?
  3. エンコーダーのプロパティ分析を0x3:0x113 (オンラインで見つけたランダムな値) に設定すると、SIGSEGV が取得されず、エンコーダーが動作しているように見えますが、パイプラインでエラーが発生することに気付きました: Data flow error分析を意味のある値に設定することはできますか?

アップデート

x264_mb_analyse_intra() 関数で実行が実行される直前、およびそれが壊れる行の直前に、すべての重要な「h」フィールドを fprintf-ed しました

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

ffmpeg - 1つのコマンドで1つのyuvファイルを異なるビットレートの3つのh.264ファイルにエンコードすることは可能ですか?

YUVファイルを持っています。H.264にエンコードする必要がありますが、3つの異なるビットレートを使用しています。yuvファイルを複数回処理する必要がないように1つのコマンドでそれを行うことは可能ですか?

これが私が今していることです:

それをより速くするために1つのコマンドでそれを行うことは可能ですか?YUVファイルはかなり大きくなる可能性があるので、3回続けて抽出したくありません。そして、3つのエンコーディングプロセスはすべて同じ入力YUVファイルを使用するので、それは可能であると思います。

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

assembly - ASM SSSE3 コードが存在する場合、-mssse3 でコンパイルする必要がありますか?

GCC で x264 のビルドをコンパイルすることに関して質問があります。

x264 には、SSE3 や SSSE3 などの命令セットを処理するアセンブリ コードがあり、デフォルトでは、makefile で自動ベクトル化が無効になっています。

とにかく -mssse3 フラグを付けてコンパイルする必要がありますか、それとも実際にパフォーマンスが低下する可能性がありますか?

また、-mssse3 は -msse3 を意味しますか、それとも SSE3 は SSSE3 とは別のものですか?

0 投票する
3 に答える
1620 参照

latency - x264 スレッドのレイテンシ

x264 でスライスレス スレッド ( http://akuvian.org/src/x264/sliceless_threads.txt ) を使用すると、なぜレイテンシが発生するのでしょうか? たとえば、2 つのスレッドがある場合、最初に 1 フレームをエンコードし、2 番目に 1 フレームをエンコードします。場合によっては、秒は最初の秒を待たなければなりません。ただし、それらは並行してエンコードできます。

つまり、2 つのスレッドは 1 つだけよりも高速であるはずですよね?

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

android - ffmpeg 10.04 はコーデック パラメータを見つけることができませんでした

コマンドの実行中にエラーが発生しました ffmpeg -i /path/to/video.mp4:

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

c - libavformat/ffmpegをx264およびRTPと同期する際の問題

私は、H.264を使用して、さまざまな種類のカメラからライブフィードを取得し、ネットワーク経由でストリーミングするストリーミングソフトウェアに取り組んできました。これを実現するために、x264エンコーダーを直接(「zerolatency」プリセットを使用して)使用し、libavformatでRTP(最終的にはRTSP)にパックできるNALをフィードしています。理想的には、このアプリケーションは可能な限りリアルタイムである必要があります。ほとんどの場合、これはうまく機能しています。

ただし、残念ながら、ある種の同期の問題があります。クライアントでのビデオ再生では、いくつかのスムーズなフレームが表示され、その後に短い一時停止が続き、さらに多くのフレームが表示されます。繰り返す。さらに、約4秒の遅延があるようです。これは、私が試したすべてのビデオプレーヤー(トーテム、VLC、基本的なgstreamerパイプ)で発生します。

私はそれをやや小さなテストケースにまとめました:

このテストでは、白​​い背景に黒い線が表示され、左にスムーズに移動するはずです。ffmpeg 0.6.5用に書かれていますが、問題は0.80.10で再現できます(これまでにテストしたものから)。エラー処理でいくつかのショートカットを使用して、この例をできるだけ短くし、問題を示しているので、厄介なコードのいくつかを許してください。また、ここではSDPを使用していませんが、SDPを使用してみたところ、同様の結果が得られていることにも注意してください。テストは次のコマンドでコンパイルできます。

gtreamerで直接再生できます。

吃音にすぐに気付くはずです。私がインターネット全体で見た一般的な「修正」の1つは、パイプラインにsync=falseを追加することです。

これにより、再生がスムーズに(そしてほぼリアルタイムで)行われますが、解決策ではなく、gstreamerでのみ機能します。ソースで問題を修正したいと思います。私は生のffmpegを使用してほぼ同一のパラメーターでストリーミングすることができましたが、問題はありませんでした。

だから明らかに私は何か間違ったことをしている。しかし、それは何ですか?

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

callback - 「nalu_process」がいつ呼び出されるかについて、保証があるとすれば、それは何ですか?

特に、関連付けられたx264_encoder_encodeすべてのコールバックが返される前に呼び出しを返すことはできますか? nalu_process#x264 の誰かが、設定に依存することを提案しました。ここでは、「ゼロレイテンシー」プリセットについて話しています。

上記の質問に対する答えが「はい」の場合、経験的にどれくらい一般的ですか?

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

python - 複数のパスを持つx264は、一時ファイルの場所を指定しますか?

だから、私の状況はこんな感じです。並行して実行したい3つのパスを持つ3つのx264コマンドがあります。

次に、2番目のパスを並行して実行します。

そして3回目のパスも。

問題は、(マルチプロセッシングを使用して)-pオプションを指定して3つのx264コマンドを同時に実行しているため、すべてが同じ一時ファイルを使用して1回目と2回目のパスの結果を保存しようとしていることです。

x264コマンドごとに異なる一時ファイルを使用するように指定する方法はありますか?