fftools/ffmpeg: when framerate is set, prefer its inverse as output timebase
Codec timebase is not well-defined for streamcopy, so it should only be used as the last resort.
This commit is contained in:
		
							parent
							
								
									7ec8229982
								
							
						
					
					
						commit
						0214da22ca
					
				@ -3151,8 +3151,12 @@ static int init_output_stream_streamcopy(OutputStream *ost)
 | 
			
		||||
        return ret;
 | 
			
		||||
 | 
			
		||||
    // copy timebase while removing common factors
 | 
			
		||||
    if (ost->st->time_base.num <= 0 || ost->st->time_base.den <= 0)
 | 
			
		||||
        ost->st->time_base = av_add_q(av_stream_get_codec_timebase(ost->st), (AVRational){0, 1});
 | 
			
		||||
    if (ost->st->time_base.num <= 0 || ost->st->time_base.den <= 0) {
 | 
			
		||||
        if (ost->frame_rate.num)
 | 
			
		||||
            ost->st->time_base = av_inv_q(ost->frame_rate);
 | 
			
		||||
        else
 | 
			
		||||
            ost->st->time_base = av_add_q(av_stream_get_codec_timebase(ost->st), (AVRational){0, 1});
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // copy estimated duration as a hint to the muxer
 | 
			
		||||
    if (ost->st->duration <= 0 && ist->st->duration > 0)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user