問題タブ [libav]

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

ffmpeg - avconvでMP4ファイルをMPEGに変換する方法は?

MP4形式のビデオファイルがいくつかあり、それらをMPEG形式のファイルに変換したいと思います。

私は次のように変換しようとします:

しかし、次のエラーが発生します

コマンドに何が欠けていますか?

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

linker - Libav リンク エラー: 未定義の参照

これが私の問題です:

  • ソース (バージョン 1.2) から ffmpeg をビルドしました。libav* ライブラリは /usr/local/lib にあり、静的です
  • 私は ns3 (www.nsnam.org) モジュールをコンパイルしているので、リンカに対する私の唯一の制御は環境変数 LINKFLAGS によるものです。
  • ソースでは、ヘッダーは「extern C」ブロックにあるため、通常の g++ 名マングリングではありません
  • LINKFLAGS="-I/usr/local/include/libavformat -I/usr/local/include/libavcodec -I/usr/local/include/libavutil -L/usr/local/lib -lavformat -lavcodec -lavutil" を設定しました、リンカは私が呼び出した libav* 関数のいずれも見つけられないようです (多くの「未定義の参照」が表示され、次に「collect2: エラー: ld がステータス 1 を返しました」というメッセージが表示されます)。

誰でも私を助けることができますか?ありがとう...

編集:未定義の参照メッセージのいくつかを次に示します。

edit2:「ビルドに失敗しました」の後に表示されるメッセージは次のとおりです。

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

audio - Avconv: 最高品質のものではなく、ドイツ語のストリームを選択してください

DVB S2 カードからの入力ストリームを RTMP に変換しています。

最近のavconvとx264に切り替えた後、すべて正常に動作します:)

私が見つけられなかった唯一のことは、正しいオーディオ ストリームを選択するにはどうすればよいかということです。

ソースには、最大 6 つのオーディオ トラックがある場合があります。Avconv は、ビットレートが最も高いものを自動的に選択します。ただし、「ger」を選択したい:

たとえば、ARTE のドイツ語/フランス語 TV チャンネルのストリームは次のとおりです。

libav Docs は実際にはそれほど役に立ちません。正しい構文を使用するのは誰ですか?

編集: -map オプションを見つけました: http://ffmpeg.org/trac/ffmpeg/wiki/How%20to%20use%20-map%20optionしかし、名前でマップすることはできませんか? インデックスだけ?

おそらく、「ger」の正しいストリーム インデックスを見つけるために、avprobe を使用する必要があります。

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

c++ - C++ で libav を使用して x264 ベースライン プロファイルを設定する方法

ビデオを生のh264ファイルに変換する小さなツールを書いています。これらのファイルは、後で SIP 電話によって再生されます。次のコードがあります。

このプログラムを実行すると、libx264 から次の出力が得られました。

明示的にベースラインに設定しているのに、これがまだメイン プロファイルのままなのはなぜですか?

さらに、SIP 通話にどのような h264 設定が役立つかについて誰かがメモを追加できれば、私は本当にクールです。どうもありがとうございました!

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

ffmpeg - libav ffmpeg を使用して h264 ビデオから sps 構造体を取得する方法

私の HW デコーダでは、h264 のようなビデオ コーデックに関する追加のコーデック仕様を知る必要がありますか? libav ffmpeg で低レベルのコーデック情報を抽出するにはどうすればよいですか?

必要なデータ: https://www.ffmpeg.org/doxygen/2.7/structSPS.html

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

android - Ffmpeg-Build: ビルド中のエラー

私はffmpegを構築していて、珍しい場所で立ち往生しています。libavutil 内には、float_dsp.h および float_dsp.c ファイルがあります。これらのファイル内には、次のメソッドの宣言があります。

このファイルをビルドしてコンパイルすると、このエラーが発生し、何をすべきかわかりません。問題は別の場所にあると思いますが、まったくわかりません。エラーは

助けたいと思っている人は、一歩前進してください。なぜなら、私はここ数週間、ffmpeg のサポートをまったく受けていないからです。

よろしく

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

ffmpeg - libavcodec を使用してデコード中にフレーム サイズを切り取ることはできますか?

libav と FFMPEG を使用してビデオを表示するための Dranger のチュートリアルに従いました。http://dranger.com/ffmpeg/

avcodec_decode_video2 は、ビデオ デコード プロセスの最も遅い部分のようです。2 つのビデオを同時にデコードすることがありますが、各ビデオの半分だけを並べて表示します。つまり、各ビデオの半分が画面外になります。デコードを高速化するために、フレームの一部のみをデコードする方法はありますか?

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

ffmpeg - libavformat を使用して同じコーデックで 2 つのビデオ ファイルを連結する (再多重化) 方法は?

CDN からビデオを flv 形式 (ビデオ H264 およびオーディオ AAC) でダウンロードし、MP4 形式に再多重化しました。ただし、動画の長さには制限があります。そのため、各ビデオをいくつかの部分に分けてダウンロードしました。開始点、ポイント 1、ポイント 2 (URL のシーク パラメータを使用) で開始しました。各ポイントは、前のポイントの終わりより少し早く始まります。
iを使用av_read_frameしてすべての部分をスキャンしたところ、交差するパケットのサイズと順序が同じであるだけでなく、それらの dts/pts が定数値だけ互いにずれていることがわかりました。したがって、開始ビデオをポイント 1 で開始されたビデオと連結するには、次のことを行う必要があります。
1. 出力ファイルに出力ヘッダーを作成します
。 2. 交差しないすべてのパケットを開始ビデオからコピーします。
3. ポイント 1 で開始されたビデオから、dts 値を定数でシフトして変更されたすべての交差しないパケットをコピーします。

libav (ffmpeg ではない) を使用してこれらすべてを行うには? How can libavformat be used without using other libav librariesを読みました。しかし、libavそこにないので、それは機能していませavformat_alloc_output_context2libav。また、ソースavconv.cソースは複雑すぎて、私のような初心者には、ストリーム コピー操作に関連する部分を分離できません。- input_file1
input_file2を
開く(一般的なチュートリアルで手順が標準と異なる場合にのみ必要) -同じコンテナー形式と同じビデオおよびオーディオ形式でoutput_file のヘッダーを開いて書き込む- input_file1からoutput_fileに パケットを書き込む

たとえば、パケットまで-input_file2からoutput_filepos == XXX
に パケットを書き込み、dts(または必要なもの)を定数値で変更します -正しく書き込みます
trailer

前に作成した dts でのタイム シフトの計算。

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

ffmpeg - ffms2(ffmegsource)を使った音声デコード

libav のラッパーである ffms2(ffmpegsource) を使用して、ファイルからビデオとオーディオのフレームを取得しています。ビデオのデコードは正常に機能しています。ただし、オーディオのデコードでいくつかの問題に直面しています。FFMS2 はFFMS_GetAudio(FFMS_AudioSource *A, void *Buf, int64_t Start, int64_t Count, FFMS_ErrorInfo *ErrorInfo);、デコードされたバッファを取得するための単純な関数 API を提供します。デコードされたデータは、ユーザーが提供するバッファに返されます。

単一チャネルの場合、データの解釈は、ユーザー バッファの最初の位置から始まるデータ バイトで簡単に行われます。ただし、2 チャンネルになると、FFMS_GetAudioProperties によって返されるサンプル形式に応じて、デコードされたデータが平面またはインターリーブされる可能性が 2 つあります。私の場合、サンプル形式は常に平面です。つまり、デコードされたデータは、データ [0] とデータ [1] の 2 つの別個のデータ プレーンになります。これは libav/ffmpeg と portaudio によって説明されており、平面データは 2 つの別個のデータ プレーンにあると見なされます。

ただし、FFMS_GetAudio はユーザーから単一のバッファーを取得するだけです。したがって、平面データの場合、data[0] = buf、data[1] = buf + offset と仮定できます。ここで、offset は、FFMS_GetAudio によって返されるバッファーの長さの半分です。

FFMS は、この解釈に関する適切な文書を提供していません。これについてより多くの情報を提供できる人がいれば、それは大きな助けになるでしょう。