[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. 一般的な質問


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 次のバージョンの FFmpeg はいつリリースされる? / FFmpeg のリリースがそんなに少なく間隔が開いているのはなぜ?

多くのオープンソースプロジェクト同様、FFmpeg ではマンパワーがある程度不足している状態にあります。 このため、開発者は彼らの為す任務を優先しなければならず、リリースを出すことはそのリストの最上段にくるものではなく、 バグを修正しパッチをレビューすることが優先されています。 あなたがリリースを作成するのを手助けするつもりがないなら、 どうか苦情を出してより定期的な/頻繁なリリースを求めたりしないでください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 古いバージョンの ffmpeg で問題があります; どこに報告すればいい?

報告先はどこにもありません。最新のリリースにアップグレードする、または最近のリリースが無い場合は Subversion HEAD にアップグレードしてください。報告することを試みてもいいでしょう。あなたは幸運を 得るかも分かりませんし、また "Subversion HEAD にアップグレードしろ" 以外の解答を得る史上最初の人間になるかもしれません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 FFmpeg が機能 [xyz] をサポートしないのはなぜ?

それはその任務に取り掛かる人がいないからです。FFmpeg の開発は 個々の開発者にとって重要な任務によって進められています。 あなたにとって重要な機能があるときには、それが実装されるようにする一番よい方法は あなた自身がその任務に着手することです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 FFmpeg は XXX というコーデックをサポートしていません。サポートするために Windows の DLL ローダーを含めてみたら?

いいえ。FFmpeg はオープンソースのコーデックしかサポートしません。Windows の DLL は移植可能でなく、 膨らみ過ぎで、また多くの場合遅いです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.5 ffmpeg-devel/user 宛てのバグレポート/メールに1つも返答がない

ありがちな理由


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.6 メーリングリストが好きでないのですが、FFmpeg のフォーラムはありますか?

はい、(http://dir.gmane.org/gmane.comp.video.ffmpeg.user)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.7 ファイルが読めません。フォーマットは ffmpeg でサポートされているようなのですが。

たとえ ffmpeg がそのコンテナフォーマットを読むことができても、そのフォーマットの全てのコーデックを サポートしているとは限りません。ffmpeg のドキュメントにあるサポートするコーデックのリストにあたって みてください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.8 どのコーデックが Windows でサポートされていますか?

追加のコーデックをインストールしない限り、 Windows は MPEG のような標準フォーマットを十分にはサポートしていません。

下に挙げる映像コーデックはほとんどの Windows システムで動作するでしょう:

`msmpeg4v2'

.avi/.asf

`msmpeg4'

.asf のみ

`wmv1'

.asf のみ

`wmv2'

.asf のみ

`mpeg4'

ffdshow または Xvid のような MPEG-4 コーデックがインストールされている場合に限る。

`mpeg1'

.mpg のみ

Windows では ASF ファイルがしばしば .wmv や .wma という拡張子を持つので注意してください。 また Microsoft が ASF フォーマットの特許を主張しており、非 Microsoft のソフトウエアで ASF ファイルを作成するユーザーを訴える、もしくは脅かす恐れがある、ということも述べておくべきでしょう。 可能な場合には ASF を避けることを強く忠告します。

下に挙げる音声コーデックはほとんどの Windows システムで動作するでしょう:

`adpcm_ima_wav'
`adpcm_ms'
`pcm'
`mp3'

LAME のような MP3 コーデックがインストールされている場合。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. コンパイル


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'

これは gcc のバグです。私たちに報告しないでください。代わりに、gcc の開発者にそれを 報告してください。私たちは gcc のバグのための回避策を加えるつもりはないことに注意してください。

また gcc の開発者(のうちのいく人か)はこれがバグないし彼らが直すべきバグだと信じていないことに 注意してください: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11203。 そしてさらに、彼らのうちには決定不可能な問題と NP-hard 問題の違いを分かっていないものもいます...。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. 使用法


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 ffmpeg が動きません; 何がおかしい?

ffmpeg のソースディレクトリでビルドの前に 'make distclean' を試してください。これが助けにならない場合は (http://ffmpeg.org/bugreports.html) を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 JPEG ファイルを他のフォーマットにエンコードするには?

その JPEG ファイルが img1.jpg, img2.jpg, img3.jpg,... なら、次のようにします:

 
  ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg

`%d' は画像の番号に置き換えられます。

`img%03d.jpg' とすると `img001.jpg', `img002.jpg', ... などになります。

他の画像フォーマットでも同じ方式が用いられます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 動画を別々の画像にエンコードするには?

次のようにします:

 
  ffmpeg -i movie.mpg movie%d.jpg

この `movie.mpg' が入力として用いられ、 `movie1.jpg', `movie2.jpg', ... などに変換されるでしょう。

ファイルフォーマットの自己認識に頼る代わりに、エンコーディングを強制するため

`-vcodec ppm'
`-vcodec png'
`-vcodec mjpeg'

を使うことになるかもしれません。

これらを前の例に応用すると:

 
  ffmpeg -i movie.mpg -f image2 -vcodec mjpeg menu%d.jpg

"jpeg" というコーデックはないことに注意してください。代わりに "mjpeg" を使ってください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 "Unsupported codec (id=86043) for input stream #0.1" というメッセージが出ました。何が問題?

それは Qcelp コーデックで、FFmpeg は今のところサポートしていません。 MEncoder/MPlayer を試してください。おそらく動作します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.5 マルチスレデッド MPEG* エンコーディングだと少し品質が落ちるようですがなぜ?

マルチスレデッド MPEG* エンコーディングのため、エンコードされた断片はそれぞれ独立でなければなりませんが、 そうでなければスレッド n は実用的には n-1 が終わるまで待たなくてはなりません。 そのため品質の小さな低下があるのはごく論理的なことです。これはバグではありません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.6 標準入力から読み込む、または標準出力に書き出すには?

ファイル名として `-' を使ってください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.7 ffmpeg が VOB ファイルの音声をデコードしないのはなぜ?

その音声は(A/52 として知られている) AC-3 です。AC-3 デコーディングは ffmpeg のオプションの要素で、 現時点で GPL の下でリリースされている AC-3 デコーディング(liba52)を制御する部分です。 ./configure --enable-gpl で AC-3 デコーディングを可能にしてください。 注意: AC-3 を有効にすると、あなたは自動的に libavcodec のライセンスを LGPL から GPL に変更することになります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.8 Linux での bt8x8 キャプチャーで輝度信号データと違うタイミングで色信号データが抽出されているのはなぜ?

これは bt8x8 ドライバーの周知のバグです。2.4.26のためにはパッチが (http://svn.mplayerhq.hu/michael/trunk/patches/bttv-420-2.4.26.patch?view=co)にあります。 これは他の2.4系列のカーネルに対してもきれいに当たります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.9 Linux での bt8x8 キャプチャーで醜い折り返しアーティファクトを避けるには?

bttv ドライバーに 'combfilter=1 lumafilter=1' を渡してください。ただし 'combfilter=1' によって 幾分強すぎるフィルタリングを生じることに注意してください。修正には (http://svn.mplayerhq.hu/michael/trunk/patches/bttv-comb-2.4.26.patch?view=co) または (http://svn.mplayerhq.hu/michael/trunk/patches/bttv-comb-2.6.6.patch?view=co) を適用して 'combfilter=2' を渡してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.10 '-f jpeg' がうまくいきません。

'-f image2 test%d.jpg' を試してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.11 フレームレートを変更できないのはなぜ?

コーデックの中には、MPEG-1/2 のように、少数の決まったフレームレートのみを許すものがあります。 -vcodec コマンドラインオプションで別のコーデックを選んでください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.12 ffmpeg で Xvid または DivX の映像にエンコードするには?

Xvid、DivX(バージョン 4+) どちらも ISO MPEG-4 標準の実装です (これと同じ標準を使った他の多くのコーディングフォーマットがあることに注意してください)。 したがって、これらのフォーマットにエンコードするためには '-vcodec mpeg4' を使ってください。 MPEG-4 でコードされたファイルに格納される既定の fourcc は 'FMP4' です。 異なる fourcc にしたい場合は、'-vtag' オプションを使ってください。例えば、'-vtag xvid' とすると video fourcc としてデフォルトの 'FMP4' ではなく 'xvid' が格納されるよう強制します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.13 iPod で再生するビデオをエンコードするには?

`必要なもの'

-acodec libfaac -vcodec mpeg4 width<=320 height<=240

`動作するもの'

4mv, title

`動作しないもの'

B-frames

`コマンドラインの例'

ffmpeg -i input -acodec libfaac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.14 PSP で再生するビデオをエンコードするには?

`必要なもの'

-acodec libfaac -vcodec mpeg4 width*height<=76800 width%16=0 height%16=0 -ar 24000 -r 30000/1001 or 15000/1001 -f psp

`動作するもの'

4mv, title

`動作しないもの'

B-frames

`コマンドラインの例'

ffmpeg -i input -acodec libfaac -ab 128kb -vcodec mpeg4 -b 1200kb -ar 24000 -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp output.mp4

`H.264 のために必要なもの'

-acodec libfaac -vcodec libx264 width*height<=76800 width%16=0? height%16=0? -ar 48000 -coder 1 -r 30000/1001 or 15000/1001 -f psp

`H.264 で動作するもの'

title, loop filter

`H.264 で動作しないもの'

CAVLC

`コマンドラインの例'

ffmpeg -i input -acodec libfaac -ab 128kb -vcodec libx264 -b 1200kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -s 368x192 -r 30000/1001 -title X -f psp -flags loop -trellis 2 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 output.mp4

`新しい PSP のファームウェア向けの高解像度、width<=480、height<=272'

-vcodec libx264 -level 21 -coder 1 -f psp

`コマンドラインの例'

ffmpeg -i input -acodec libfaac -ab 128kb -ac 2 -ar 48000 -vcodec libx264 -level 21 -b 640kb -coder 1 -f psp -flags +loop -trellis 2 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -g 250 -s 480x272 output.mp4


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.15 高品質な MPEG-4 エンコーディングに向いているパラメーターは?

'-mbd rd -flags +4mv+trell+aic -cmp 2 -subcmp 2 -g 300 -pass 1/2', 試してみるべきもの: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.16 高品質な MPEG-1/MPEG-2 エンコーディングに向いているパラメーターは?

'-mbd rd -flags +trell -cmp 2 -subcmp 2 -g 100 -pass 1/2' ですが '-g 100' はデコーダーによっては問題が生じるかもしれません。 試してみるべきもの: '-bf 2', '-flags qprd', '-flags mv0', '-flags skiprd'。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.17 ffmpeg でエンコードするとインターレースされたビデオがとても粗悪ですが、何がおかしい?

インターレースされたデータには '-flags +ilme+ildct' を使うべきで、また '-flags +alt' も良いかもしれません。 さらに結果が本当にむちゃくちゃなら '-top 0/1' を試してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.18 DirectShow ファイルを読むには?

FFmpeg を ./configure --enable-avisynth としてビルドしている (MinGW/Cygwin プラットフォームでのみ可能性があります)なら、 DirectShow が読めるファイルならどれでも入力として使えます。 (この機能は最近追加されたもので、このため問題が起きたら自分で解決しなくてはならないことに 注意してください。)

単に次の1行からなるテキストファイル "input.avs" を作成します:

 
  DirectShowSource("C:\path to your file\yourfile.asf")

... そして続いてこのテキストファイルを FFmpeg にフィードします:

 
  ffmpeg -i input.avs

Avisynth に関するこれ以外の一切のヘルプについては、 http://www.avisynth.org/ を訪ねてください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.19 ビデオファイルを結合するには?

単にファイルを結合するだけでビデオファイルをつなげることができるマルチメディア コンテナ(MPEG-1, MPEG-2 PS, DV)が少しだけあります。

したがってマルチメディアファイルを結合するには、まずそれらをこれら特権的なフォーマット にコード変換し、そして質素な cat コマンド(もしくは同じような Windows 上の質素な copy)を使い、最後に選んだフォーマットに変換し直すことです。

 
ffmpeg -i input1.avi -sameq intermediate1.mpg
ffmpeg -i input2.avi -sameq intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -sameq output.avi

ビデオの品質を保ちたいときには、中間および出力ファイルのために -sameq を使うか、適度に高いビットレートを指定するかするべきであることに注意して ください。

プラットフォームがサポートしているなら、名前付きパイプの利点を生かして 巨大な中間ファイルを避けることもできることにも注意してください:

 
mkfifo intermediate1.mpg
mkfifo intermediate2.mpg
ffmpeg -i input1.avi -sameq -y intermediate1.mpg < /dev/null &
ffmpeg -i input2.avi -sameq -y intermediate2.mpg < /dev/null &
cat intermediate1.mpg intermediate2.mpg |\
ffmpeg -f mpeg -i - -sameq -vcodec mpeg4 -acodec libmp3lame output.avi

同様に、yuv4mpegpipe フォーマット、未加工ビデオ、および未加工オーディオコーデック もまた結合を許し、かつコード変換ステップがほとんどロスレスです。

例えば、2つの FLV ファイルを1つの output.flv ファイルにつなげたいとします:

 
mkfifo temp1.a
mkfifo temp1.v
mkfifo temp2.a
mkfifo temp2.v
mkfifo all.a
mkfifo all.v
ffmpeg -i input1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null &
ffmpeg -i input2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null &
ffmpeg -i input1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null &
ffmpeg -i input2.flv -an -f yuv4mpegpipe - > temp2.v < /dev/null &
cat temp1.a temp2.a > all.a &
cat temp1.v temp2.v > all.v &
ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
       -f yuv4mpegpipe -i all.v \
       -sameq -y output.flv
rm temp[12].[av] all.[av]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.20 FFmpeg が -maxrate 設定に従いません、maxrate/fps より大きくなるフレームがあります。

MPEG の仕様を読み、video buffer verifier について読んでください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.21 フレームサイズがどんなに違っていてもいいので CBR にしたいです。

あなたは cbr が何なのか分かっていません、MPEG の仕様を読んでください。 video buffer verifier と constant bitrate について読んでください。 1文で要約すると、buffer があって入力レートが一定でも、必要に応じて 出力レートは変わることがあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.22 ストリームが CBR かどうかを確認するにはどうする?

MPEG-2 の仕様を引用すると: "全ての vbv_delay 値を検査しかつ複雑な計算をしない限り ビットストリームが固定ビットレートかどうかを知る方法はありません。"


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. 開発


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 FFmpeg のライブラリ、特に libavcodec や libavformat を使う方法を示している例はある?

はい。FFmpeg のドキュメントの the Developers Guide を読んでください。あるいは、 (http://ffmpeg.mplayerhq.hu/projects.html) にある FFmpeg を既に組み入れている 多くのオープンソースプロジェクトのソースコードを調べてみてください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 C コンパイラ XXX をサポートしたら?

場合によります。もしそのコンパイラが C99 準拠であれば、 そのコンパイラに関係した #ifdef でソースコードを汚さないかぎり それをサポートするパッチは歓迎される見込みがあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 Microsoft Visual C++ はサポートされてる?

いいえ。Microsoft Visual C++ は C 標準に準拠しておらず - 中でも - FFmpeg で使っているインラインアセンブリを サポートしていません。 もしあなたが自分のプロジェクトで MSVC++ を使いたいなら、 動作する C コンパイラで libav* をコンパイルする限りは MSVC++ コードを libav* とリンクできます。 FFmpeg のドキュメントの Microsoft Visual C++ compatibility の節を見てください。

過去に FFmpeg を MSVC++ と互換にする努力がなされました。 しかし、それらはあまりに邪魔であったため、特にMinGW が適切に役割を果たしたために、全て拒否されました。 MSVC++ で作業をするコア開発者が1人もおらず、このためこの項目の優先度は低いです。 あなたがこの問題を解決する銀の弾丸を見つけておられるなら、遠慮なく我々に向かって撃ってください。

我々は MSVC++ から MinGW ツールに移行することを強く奨めます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Windows で FFmpeg または libavcodec は使える?

はい、しかし FFmpeg をコンパイルするのには 必ず Cygwin または MinGW ツールを使わなければなりません。 さらなる情報を見つけるには FFmpeg のドキュメントの Windows の節を読んでください。

Windows 上で FFmpeg をビルドするための助けや教えを得るためには、 http://arrozcru.no-ip.org/ffmpeg/ にある FFmpeg Windows Help Forum をチェックしてください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.5 automake や libtool、autoconf のサポートを加えてみたら?

いいえ。これらのツールは膨らみ過ぎで、ビルドを複雑にします。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6 ffmpeg をオブジェクト指向の C++ で書き直したら?

FFmpeg は既に高いモジュール構成からなる方式で組織化されており、フォーマルなオブジェクト言語で 書き直す必要はありません。さらに、開発者の多くが純粋な C を好んでいます; 彼らにはそれでうまくいくのです。この題材についてさらなる議論をするには (http://www.tux.org/lkml/#s15) にある "Programming Religion" を読んでください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7 ffmpeg のプログラムにデバグシンボルが無いのはなぜ?

ビルドの過程では完全なデバグ情報を含んでいる ffmpeg_g や ffplay_g などを作成します。 ffmpeg や ffplay などを作成するためにこれらのバイナリは strip されます。 デバグ情報が必要なら、*_g バージョンを使ってください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.8 LGPL が好きでありません、代わりに GPL でコードを寄付してもいい?

はい、そのコードがオプションであり、簡単かつきれいに何も壊すことなく #ifdef CONFIG_GPL で配置される限りは。 ですので、例えば新しいコーデックやフィルターは GPL でよいですが LGPL のコードへのバグ修正ならよくありません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.9 xyz.c を単独でコンパイルしたいのですがコンパイラがたくさんのエラーを出します。

共通のコードは libav* の中のそれ自身のファイルにあり、個別のコーデックによって利用されています。 それらは共通部分なしでは機能せず、libav* 全体をコンパイルしなければなりません。 お望みであれば、いくつかの部分を configure スイッチによって無効にしてください。 またハックしてさらに削ることを試みてもいいですが、コンパイルの失敗を修正するのに問題があるなら、 多分あなたには向いていないでしょう。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.10 C++ アプリケーション内で libavcodec を使っているのですが、リンカが利用可能に見えるのに見つからないシンボルについて文句を言います。

FFmpeg は純粋な C のプロジェクトですので, そのライブラリを C++ アプリケーション内で使うには、 C のライブラリを使うと明示的に述べる必要があります。これは FFmpeg の include を extern "C" で 取り囲むことによってできます。

http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.3 を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.11 メモリ上にあるファイル、もしくは *open/*read/ libc とは異なる API があります。libavformat でそれを使うには?

URLProtocol を実装しなければなりません。 FFmpeg の libavformat/file.c や Mpalyer のソースの libmpdemux/demux_lavf.c を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.12 MSys で "No compatible shell script interpreter found." というメッセージが出ます。

標準の MSys bash (2.04) は壊れています。2.05 またはより新しいものをインストールする必要があります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.13 MSys で "./configure: line <xxx>: pr: command not found" となりました。

標準の MSys インストールには pr が含まれていません。coreutils パッケージから取得する必要があります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.14 RTP パケットをデコーダーに渡そうとしましたが、うまくいきません。

RTP は他のものと同様コンテナのフォーマットです。最初に RTP の中に貯えられている コーデックフレーム/サンプルをパケットから取り出し、それからデコーダーにフィード しなくてはなりません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.15 Pascal/Delphi のための libavc* ヘッダーはどこで見つかる?

http://www.iversenit.dk/dev/ffmpeg-headers/ を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.16 ffv1、msmpeg4、asv1、4xm についてのドキュメントはどこ?

http://svn.mplayerhq.hu/michael/trunk/docs/ を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.17 H.263-RTP (やその他のコーデックの RTP まがいのもの) を libavcodec にフィードするには?

たとえネットワーク指向であるがゆえ特異であるとはいえ、RTP は他のものと同様コンテナです。 libavcodec にペイロードをフィードする前に RTP の多重化を解かなければなりません。 この特殊な場合には、何がなされるべきかを知るために RFC 4629 を見てください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.18 AVStream.r_frame_rate が間違っています、フレームレートよりごく大きくなります。

r_frame_rate は平均フレームレートでは*なく*、全てのタイムスタンプを正確に表現することが 可能な最小のフレームレートです。このため平均のものより大きくなっても間違っていません! 例えば 25 および 30 fps の内容が混ぜられていれば、r_frame_rate は 150 になるでしょう。


[Top] [Contents] [Index] [ ? ]

About This Document

This document was generated by Takeshi Abe on August, 15 2008 using texi2html 1.76.

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack beginning of this chapter or previous chapter 1
[ Up ] Up up section 1.2
[ >> ] FastForward next chapter 2
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index index  
[ ? ] About about (help)  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:


This document was generated by Takeshi Abe on August, 15 2008 using texi2html 1.76.