7

av_register_all()を呼び出す代わりに、使用する単一のデコーダーを選択する例はありますか?私はavcodec_register()、av_register_codec_parser()などを呼び出さなければならないと思います...

問題は、av_register_all()を使用しない場合、av_open_input_file()が-2で失敗するため、どの関数を正確に呼び出す必要があるかということです。

4

1 に答える 1

10

それを行う方法があります:) av_register_allが行うすべての手順を書き留めました。コーデックを登録するだけでは不十分かもしれないので、理解が深まるかもしれないと思いました。ソースコードを見てみるのが一番いいでしょう:

http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/allformats_8c-source.html

1) ハードウェアアクセラレーション:

av_register_hwaccel(AVHWAccel*accel);

2) コーデック / Dec,Enc,DecEnc, ext. ライブラリなど....

avcodec_register(AVCodec*codec);

3) パーサー

av_register_codec_parser(AVCodecParser*parser);

4) ビットストリーム フィルター

av_register_bitstream_filter(AVBitstreamFilter*bsf);

5) Mux/Demuxer を登録する

av_register_output_format(AVOutputFormat*ov);
av_register_input_format(AVInputFormat*if);

6) RTP の場合:

av_register_rtp_dynamic_payload_handlers();
av_register_rdt_dynamic_payload_handlers();

7) プロトコル

av_register_protocol2(URLProtocol*pr, int size);

それが役に立ったことを願っていますか?

于 2012-01-13T20:12:44.593 に答える