現在、MP4(MPEG4およびH264)ビデオファイルを.MP4、.MPGおよび.AVIファイルにトランスコードするためにlibavcodecを使用しようとしています。 FFMpeg.exeで '-sameq'フラグを使用して同じ/類似の品質の出力ファイルを入力ファイルのものと同じにするためにこれを使用しました。libavcodecを使用するときにFFMPEG '-sameq'フラグをエミュレートするために設定する必要があります
av_open_input_file、av_read_frameおよびavcodec_decode_video2を使用して、入力ファイルを開いて読み取り、デコードし、次にAVCodecContextを割り当て、avcodec_encode_videoを使用してデータをエンコードします。しかし、出力ファイルのビデオ品質はかなり悪いです。 ?
codecContextOutput->width = SAME AS INPUT FILE;
codecContextOutput->height = SAME AS INPUT FILE;
codecContextOutput->pix_fmt = SAME AS INPUT FILE;
/* frames per second */
AVRational ar;
ar.num = 1;
ar.den = 25;
codecContextOutput->time_base = ar;
codecContextOutput->gop_size = 10; /* emit one intra frame every ten frames */
codecContextOutput->max_b_frames=1;
codecContextOutput->bit_rate = 480000;
誰もが「-sameq」に設定するか、どのような追加の設定をエミュレートするために必要な追加設定を改善するためにAVCodecContextで必要とされている知っています - :
これらは、私が使用しているAVCodecContext設定されています出力品質?