You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
ffmpeg: better timebase guessing for stream copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
14
ffmpeg.c
14
ffmpeg.c
@@ -2237,13 +2237,23 @@ static int transcode(AVFormatContext **output_files,
|
|||||||
goto fail;
|
goto fail;
|
||||||
memcpy(codec->extradata, icodec->extradata, icodec->extradata_size);
|
memcpy(codec->extradata, icodec->extradata, icodec->extradata_size);
|
||||||
codec->extradata_size= icodec->extradata_size;
|
codec->extradata_size= icodec->extradata_size;
|
||||||
|
|
||||||
|
codec->time_base = ist->st->time_base;
|
||||||
|
if(!strcmp(os->oformat->name, "avi")) {
|
||||||
|
if(!copy_tb && av_q2d(icodec->time_base)*icodec->ticks_per_frame > 2*av_q2d(ist->st->time_base) && av_q2d(ist->st->time_base) < 1.0/500){
|
||||||
|
codec->time_base = icodec->time_base;
|
||||||
|
codec->time_base.num *= icodec->ticks_per_frame;
|
||||||
|
codec->time_base.den *= 2;
|
||||||
|
}
|
||||||
|
} else if(!(os->oformat->flags & AVFMT_VARIABLE_FPS)) {
|
||||||
if(!copy_tb && av_q2d(icodec->time_base)*icodec->ticks_per_frame > av_q2d(ist->st->time_base) && av_q2d(ist->st->time_base) < 1.0/500){
|
if(!copy_tb && av_q2d(icodec->time_base)*icodec->ticks_per_frame > av_q2d(ist->st->time_base) && av_q2d(ist->st->time_base) < 1.0/500){
|
||||||
codec->time_base = icodec->time_base;
|
codec->time_base = icodec->time_base;
|
||||||
codec->time_base.num *= icodec->ticks_per_frame;
|
codec->time_base.num *= icodec->ticks_per_frame;
|
||||||
|
}
|
||||||
|
}
|
||||||
av_reduce(&codec->time_base.num, &codec->time_base.den,
|
av_reduce(&codec->time_base.num, &codec->time_base.den,
|
||||||
codec->time_base.num, codec->time_base.den, INT_MAX);
|
codec->time_base.num, codec->time_base.den, INT_MAX);
|
||||||
}else
|
|
||||||
codec->time_base = ist->st->time_base;
|
|
||||||
switch(codec->codec_type) {
|
switch(codec->codec_type) {
|
||||||
case AVMEDIA_TYPE_AUDIO:
|
case AVMEDIA_TYPE_AUDIO:
|
||||||
if(audio_volume != 256) {
|
if(audio_volume != 256) {
|
||||||
|
Reference in New Issue
Block a user