問題タブ [libx264]
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.
image-processing - x264とビデオフレームのエンコードについて混乱している
キャプチャした一連の画像をエンコードするためのテストドライバーを作成しました。私はlibx264を使用しており、この男の答えに基づいてドライバーを作成しています。
私の場合、JPG画像を読み込んで、YUVに変換し、同じフレームをループでx264エンコーダーに何度も渡すことから始めています。
私の期待は、フレームが同じであるため、エンコーダーからの出力が非常に小さく、一定になることでした。
代わりに、NALペイロードが数バイトから数KBまで変化し、エンコーダーパラメーターで指定したフレームレートによっても大きく変化することがわかりました。
明らかに、私はビデオエンコーディングを理解していません。なぜ出力サイズが大きく変わるのですか?
私が読んでいる元のJPG画像は320x240で、ディスク上で約9KBです。同じ画像をエンコーダーに通して実行した場合の出力は、次のようになります。
FPSを30ではなく10に設定すると、出力サイズが大幅に変化します。
教えてくれませんか?
linux - VLC libx264 ビルド エラー - 「'x264_encoder_open_128' への未定義の参照」
主な問題
このエラーを繰り返すための手順。
- 最新の git (git://git.videolan.org/x264.git) をダウンロードします。
- 実行
./configure
- 任意のオプションを使用できます。エラーはすべてに存在します。 - 実行
sudo make
- すべてのコードをコンパイルしますが、コードをリンクするときにエラーが発生します/usr/local/lib/libavcodec.a(libx264.o): 関数 'X264_init' 内:
/.../libx264.c:418: 'x264_encoder_open_128' への未定義の参照
追加情報
このエラーは、avconvのビルド時にも表示されます。リンク時にも同じエラーで失敗します。したがって、そのディレクトリまたはソースに問題はないと想定できます。
c++ - x264 エンコーディングの FFMPEG
ffmpeg + x264を使用して、一連のjpeg画像からh264にビデオをエンコードしようとしています。次のように AVCodecContext を初期化します。
avcodec_open はエラーを返さず、何も問題ありませんが、 avcodec_encode_video2() を呼び出すと、次のようなメッセージが表示されます (x264 からだと思います):
そして、アプリがクラッシュします。x264 && を使用する場合、コーデック コンテキストに必要な設定が他にもあります。
compilation - qnap での x264 のコンパイル エラー
qnap で x264 をコンパイルする際に問題に直面しています。
x264 ライブラリで ffmpeg をコンパイルする必要があります。qnap パッケージには x264 0.66 ライブラリが組み込まれていますが、ffmpeg-0.9.2 は古いバージョンの x264 をサポートしておらず、ソースから x264 をコンパイルすると次のエラーが発生します。
誰かがそれについて私を助けることができますか?
c++ - 同じ接続または分割接続でビデオとコマンドをストリーミングしますか?
バックグラウンド
私は、オフィス内のすべてのマシン (およそ 30 ~ 35 台のマシン) にインストールするクライアント/サーバー アプリを作成している最中です。現在、サーバーに接続しているクライアントがあり、マウスの動き、マウスのクリック、キーストロークを送信し、特定のコマンドを実行する機能があります。次のステップは、画面のビデオ出力をストリームバックすることです。画面キャプチャの最速メソッドの GDI メソッドを使用して画面全体をキャプチャし、x264 エンコーダを使用してフレームを圧縮し、クライアントに送り返します。次に、ストリームをデコードして表示します。
質問
(遅延を減らし、すべてのコマンドができるだけ速く配信され、ストリーミングが可能な限りライブになるようにすることによって) コマンド用に確立したのと同じ接続に沿って送信するのが最善ですか、それとも別の接続を確立する必要がありますか?同じポートに接続するか、ビデオをストリーミングするために別のポートに接続しますか?
PS
VNC、RD、および TeamViewer などの他のものが既に存在し、すでにこの種のことを行っていることは認識していますが、これらのいずれも、このシステム内で必要なものに必要なすべての要件をサポートしていません。
sse - x264 ライブラリの速度 - Altivec vs SSE4 -
シンプルで安価なデュアルコア intel-3ghz-debian と、超高価な powerPc7-Aix へのアクセスがあります。
そして、数日間の闘争の後、libx264 をコンパイルし、両方のコンピューターでテストしました。
- GCC: Intel 上のライブラリ x264 (SSE2 機能付き) および
- 16 コアの powerPc 上の GCC (altivec を使用)。
...そしてその結果、安価な Intel はx2 倍高速です! (altivec を無効にすると、Intel は 10 倍速くなります)
私の質問: これは正常ですか? 他のすべての powerPC ユーザーの結果は同じですか? x264 ライブラリの powerPc-altivec-optimisation は Intel と同じ速度で動作しますか? または MMX/SSE 最適化は公式にはこのライブラリで少なくとも 2 倍高速ですか?
マルチスレッドオプションには興味がありません。コア数とスレッド数は関係ありません。rawvideo をソースとして使用するデフォルトの「ミディアム プリセット」を使用したシンプルな 1 スレッド x264 エンコーディング、sse と altivec の比較。
ネイティブの Aix XLC コンパイラがより良い結果を提供するのではないでしょうか? (私はgccのみが動作するように管理しました)
... mac-powerpc-users は、これについて何か知っているかもしれません。
android - Androidプラットフォームのスレッドサポートを使用してx264をコンパイルします
私はスレッドサポート付きのAndroid用のx264をコンパイルしようと試みてきました...しかし成功しませんでした...
私はスレッドサポートなしで同じものをコンパイルすることができました...configureコマンドは次のとおりです:
どこPREBUILT=$NDK/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86
と
PLATFORM=$NDK/platforms/android-14/arch-arm
--enable-static
オプションとを使用した場合と使用しない場合も試しましextra-ldflags="-lpthread"
たが、試行make
するとエラーで終了します。
上記を達成する方法はありますか...?
c++ - C++ で libav を使用して x264 ベースライン プロファイルを設定する方法
ビデオを生のh264ファイルに変換する小さなツールを書いています。これらのファイルは、後で SIP 電話によって再生されます。次のコードがあります。
このプログラムを実行すると、libx264 から次の出力が得られました。
明示的にベースラインに設定しているのに、これがまだメイン プロファイルのままなのはなぜですか?
さらに、SIP 通話にどのような h264 設定が役立つかについて誰かがメモを追加できれば、私は本当にクールです。どうもありがとうございました!
x264 - x264を使用する場合、これは正しいですか?
新しい x264 API を使用する権利はありますか?フレームを取得し、x264 でエンコードしてから、.264 ファイルに保存しますか? しかし、私はこれが正しいかどうかわかりませんか?