問題タブ [libavcodec]
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.
c - libavcodec / x264でh.264をエンコードする方法は?
libavcodec/libavformatを使用してビデオをエンコードしようとしています。オーディオはうまく機能しますが、ビデオをエンコードしようとすると、次のエラーが発生します。
コマンドラインffmpegを使用して簡単に修正できますが、Cでこれを実行しようとしています。私のオプションは次のとおりです。
しかし、avcodec_open()は失敗します。
x264を満足させるには、他にどのような値を設定する必要がありますか?
.net - .NETにFFMpeg、libavutil、libavformat、libavcodecの動作するP / Invoke宣言のセットはありますか?
私は現在、.NETからlibavutil、libavformat、libavcodec(すべてFFMpegの一部)にアクセスしようとしています。
現在、 Windows32ビット用に毎晩実行される共有FFMpegパッケージの自動ビルドからライブラリを取得しています。
ffmpeg-sharpプロジェクトのコードも使用しています。そのプロジェクトでは、コンパイルされていなかったいくつかのクラスを削除しました(これらは、P / Invoke宣言ではなくラッパークラスです)。
コードは正常にコンパイルされますが、いくつかの問題が発生しています。
まず、av * .dllのビルドでは、cdecl呼び出し規約PInvokeStackImbalanceException
を使用しているようです。これは、を呼び出そうとしたときにいくつかの呼び出し規約を受け取っていたためav_open_input_file
です。これは、正しく機能させるために変更するのに十分簡単でした。AVFormatContext
構造にデータが入力されます。
その後av_find_stream_info
、ファイル内のストリームに関する情報を取得するために呼び出したいと思います。ただし、AVFormatContext
への呼び出しから取得したものを使用してそれを呼び出すと、保護されたメモリから読み取りまたは書き込みを行おうとしていることを示すav_open_input_file
anがスローされます。AccessViolationException
誰かがP/Invokeを使用して、P / Invokeを介してlibavutil、libavformat、およびlibavcodec dllライブラリにアクセスし、それを機能させましたか?
コマンドラインバージョンのFFMpegを使用することは、解決策ではありますが、この場合は実行可能な解決策ではありませんが、ライブラリを介してアクセスする必要があります。この理由は、必要なことを実行するにはディスクをあまりにも多くスラッシングする必要があり(非常に高解像度のビデオのフレームごとの分析を実行する必要があります)、ディスクを避けたいためです。できるだけ。
c - ffmpeg (libavcodec) 警告: エンコードされたフレームが大きすぎます
libavcodec (ffmpeg) を使用して生のピクセル データを mp4 形式にエンコードしようとしています。すべてがうまくいき、適切な品質の .avi ファイルを取得していますが、コーデックで「エンコードされたフレームが大きすぎます」という警告が表示されることがあります。そして、それが行われるたびに、いくつかのフレームの一部 (通常はフレームの下部) が文字化けしたり、すべてが混同されたりします。この警告がいつ表示されるか教えてください。以下は、エンコーダーに使用している設定です。
よろしく、
c++ - 無料のH263 Plus Decoderコーデックを知っている人はいますか
私はオーディオ/ビデオアプリに取り組んでおり、プロジェクトで使用される H263Plus (H263 ではない) デコーダーを探しています (C++ ベース)
よろしく、チャクス
c++ - libavcodec、異なるフレームレートでビデオをトランスコードする方法は?
v4l 経由でカメラからビデオ フレームを取得しています。RTP 経由で連続してストリーミングするには、それらを mpeg4 形式でトランスコードする必要があります。
すべてが実際に「機能」しますが、再エンコード中にはできないことがあります。入力ストリームは 15 fps を生成し、出力は 25 fps であり、すべての入力フレームは 1 つのビデオ オブジェクト シーケンスに変換されます (簡単なチェックでこれを確認しました)。出力ビットストリームで)。受信者は mpeg4 ビットストリームを正しく解析していると思いますが、RTP パケット化は何らかの形で間違っています。エンコードされたビットストリームを 1 つ以上の AVPacket に分割するにはどうすればよいですか? たぶん、私は明らかなことを見逃していて、B/P フレーム マーカーを探すだけでよいのですが、エンコード API を正しく使用していないと思います。
これは、利用可能な ffmpeg サンプルに基づく私のコードの抜粋です。
c++ - QTメモリリークのあるFFMPEG
コード クリップから始めましょう。
私がやっていることは、フレームからのデータをエンコードし、データを QByteArray が指すバッファーに入れることです。avcodec_encode_video 行をコメント アウトすると、メモリ リークがなくなります。unownedPointer() は次のようになります。
this->frame は AVFrame * で、this->img は QImage です。
約 30fps のエンコード レートで、約 50MB/秒のメモリ リークが発生しています。したがって、何が問題なのかわかりません。avcodec_encode_video() がメモリをコピーしていて、メモリを解放していないようです。何か案は?
avcodec_encode_video が RGB24 データを YUV420P に変換している場合、frame.unownedPointer() が指すデータを変更しているのでしょうか?
c++ - ffmpeg による Wma デコード
私はffmpegが初めてで、api-example.cを使用してwmaファイルをデコードしようとしました。ただし、プログラムを実行すると、次のエラーが表示されました
「frame_lenオーバーフロー」。このエラーを修正する方法を知っている人はいますか?
これが私のコードです:
私はかなり長い間これにこだわっています。私を助けてください。誰かが私のコードの何が問題なのか知っていますか?
ありがとう、
イザック
ffmpeg - ffmpegがvcodeclibx264を見つけられません
最新のffmpegをインストールしましたが、ビデオコーデックが見つからないようです。./configure
ffmpegがビデオコーデックを見つけるために、ffmpegを完全に削除し、別の方法で再実行する必要がありますか?
これが私の現在の構成です:
FFmpeg version git-f61cbc2, Copyright (c) 2000-2011 the FFmpeg developers
built on Jan 18 2011 10:59:49 with gcc 4.0.1 (Apple Inc. build 5465)
configuration: --enable-libmp3lame --enable-shared --disable-mmx --arch=x86_64
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.94. 0 / 52.94. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
または、makeコマンドを再実行してライブラリを含めることはできますか?
トランスコーディングのスニペットは次のとおりです。
ffmpeg -i ~/Desktop/watercarts.mov -vcodec libx264 -b 250k -bt 50k -acodec libfaac -ab 56k -ac 2 -s 480x320 ~/Desktop/watercartsipod.mp4
そしてエラー:
Unknown encoder 'libx264'
前もって感謝します。
visual-c++ - ビデオファイルのエンコードとデコードの主な違い
主な違いは何ですか?.flv形式のビデオがあり、avcodec.dllを使用して.h264形式に変換したいとします。エンコードまたはデコードしますか?私は本当に混乱しています。明確な答えがあれば幸いです。
ffmpeg - ffmpeg 経由で x264 を使用するには、どのパラメーターが必要ですか?
私は AVI ファイルを持っています。最初にそれを Raw 形式にデコードしました。次に、.h264 形式でエンコードしたいと思います。libavcodec.dll と libavformat.dll を使用しています。ポイントは、avcodec_open(AVCodecContext,AVCodec) からコーデックを開こうとすると開かないということです。lib x264 でこのメソッドを実行するために指定する必要があるいくつかのパラメーターがありませんか? どんな助けでも大歓迎です。ありがとう