[FFmpeg-user] Adapting videos for -filter_complex concat
Donovan Watteau
tsoomi at gmail.com
Fri Aug 24 13:50:23 CEST 2012
On Fri, 24 Aug 2012, Nicolas George wrote:
> The setsar has no effect there, as it is immediately overriden by setdar.
> There is always the following relation:
>
> DAR = SAR × IAR
>
> where IAR is the image aspect ratio, i.e. the ratio between the dimensions
> of the image in pixels. Filters that change one of these parameters must
> adapt the others accordingly, usually by keeping one of them constant and
> changing the other one. More specifically:
>
> * scale sets IAR, keeps DAR and adapts SAR;
>
> * pad and crop set IAR, keep SAR and adapt DAR;
>
> * setsar sets SAR, keeps IAR and adapts DAR;
>
> * setdar sets DAR, keeps IAR and adapts SAR.
Thank you for these explanations. I was copying all the parameters I
could get to adapt my jingle to the video, but I didn't know that I
had to omit DAR to keep the rescaling and SAR. Now, I understand why.
> > Then I try to to concatenate the new jingle and the video this way:
> > /usr/local/bin/ffmpeg -threads 2 \
> > -i adapted_jingle.mp4 -i clipcanvas_14348_H264_640x360.mp4 \
> > -filter_complex concat final_video.mp4
>
> Also, since you are transcoding at this step, there is no need to adapt
> gizmo.mp4 first: just plug the scaling+padding line above in the
> -filter_complex graph.
Yes, thanks, that's what I will eventually do. They were kept
separated to make things easier to check, for the moment.
> > But when I'm not having this problem, I see that the bitrates I gave
> > on the command line are not used.
>
> You did not show that.
Indeed, but anyway I don't think it's relevant anymore, see below.
> > They differ, and eventually the video
> > I'm creating has playing issues: when the jingle ends, the rest of
> > the video is played slower than it should be (MPlayer gives a "Too
> > many video packets in the buffer" warning at this moment).
>
> The command you showed concatenates the video but not the audio. Therefore,
> the resulting video will have less audio than video: mplayer does not like
> that.
I didn't realize that. With "-filter_complex concat=n=2:v=1:a=1",
things seem to work.
> > I also need the
> > bitrates to be the same, even if the _jingle_ is losing some quality.
>
> If you are transcoding the video, both will lose quality, that is
> inevitable. If you absolutely want to preserve the quality of the original
> video, you must concatenate without transcoding: remux it into a
> concatenable format, convert the jingle with EXACTLY the same parameters,
> concatenate the result and remux it into a more agreeable format.
Well, I was asking for the bitrates to be exactly the same because I
thought it was the reason why I was having problems playing the
resulting video with mplayer and ffplay. But "-filter_complex
concat=n=2:v=1:a=1" seems to be the right fix.
Thank you very much!
More information about the ffmpeg-user
mailing list