av_register_all()を呼び出す代わりに、使用する単一のデコーダーを選択する例はありますか?私はavcodec_register()、av_register_codec_parser()などを呼び出さなければならないと思います...
問題は、av_register_all()を使用しない場合、av_open_input_file()が-2で失敗するため、どの関数を正確に呼び出す必要があるかということです。
av_register_all()を呼び出す代わりに、使用する単一のデコーダーを選択する例はありますか?私はavcodec_register()、av_register_codec_parser()などを呼び出さなければならないと思います...
問題は、av_register_all()を使用しない場合、av_open_input_file()が-2で失敗するため、どの関数を正確に呼び出す必要があるかということです。
それを行う方法があります:) 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);
それが役に立ったことを願っていますか?