Hi, Hopefully that bug will get fixed soon...
Merc. ᐧ On 16 December 2015 at 07:47, Ryan Williams <rwilli...@busivid.com> wrote: > I discovered I could avoid using the 'fifo' filter by providing the same > input file multiple times rather than reading from the same input source > stream multiple times in the filter graph. > > -----Original Message----- > From: ffmpeg-user [mailto:ffmpeg-user-boun...@ffmpeg.org] On Behalf Of > Tony Mobily > Sent: Wednesday, 16 December 2015 10:44 > To: FFmpeg user questions > Subject: Re: [FFmpeg-user] Cross fading of videos > > Hi, > > Is that the bug you were getting around when passing the same file name > multiple times? > > Merc. > ᐧ > > On 16 December 2015 at 07:37, Ryan Williams <rwilli...@busivid.com> wrote: > > > Please to see you have it working, however the 'fifo' filter stores > > frames in memory (I believe in an uncompressed format). > > You should do testing with longer videos to ensure you don't run out > > of resources. > > > > -----Original Message----- > > From: ffmpeg-user [mailto:ffmpeg-user-boun...@ffmpeg.org] On Behalf Of > > Tony Mobily > > Sent: Tuesday, 15 December 2015 16:43 > > To: FFmpeg user questions > > Subject: Re: [FFmpeg-user] Cross fading of videos > > > > Hi Ryan, > > > > Well, now I to know FFMpeg! > > But I have to say, this is what we ended up with. It's simple, it's > > straightforward, and it just seems to work... > > > > > > /tmp/ffmpeg -i segment2s.mp4 -i segment1s.mp4 -an \ -filter_complex \ > > " [0:v]trim=start=0:end=9,setpts=PTS-STARTPTS[firstclip]; > > [1:v]trim=start=1,setpts=PTS-STARTPTS[secondclip]; > > [0:v]trim=start=9:end=10,setpts=PTS-STARTPTS[fadeoutsrc]; > > [1:v]trim=start=0:end=1,setpts=PTS-STARTPTS[fadeinsrc]; > > [fadeinsrc]format=pix_fmts=yuva420p, > > fade=t=in:st=0:d=1:alpha=1[fadein]; > > [fadeoutsrc]format=pix_fmts=yuva420p, > > fade=t=out:st=0:d=1:alpha=1[fadeout]; > > [fadein]fifo[fadeinfifo]; > > [fadeout]fifo[fadeoutfifo]; > > [fadeoutfifo][fadeinfifo]overlay[crossfade]; > > [firstclip][crossfade][secondclip]concat=n=3[output]; > > [0:a][1:a] acrossfade=d=1 [audio] > > " \ > > -map "[output]" -map "[audio]" result.mp4 > > > > That was exactly my approach; I was doing my best to make it happen, > > doing exactly that: get the first video minus the last second, get the > > second video minus the initial second, get the two versions of the > > "middle second", and then fade them together. And voila', you have a > > well faded video. The audio is ridiculosly simple too. > > > > As I was banging my head against the wall making this happen, Guido > > found this post: > > > > > > http://superuser.com/questions/1001039/what-is-an-efficient-way-to-do- > > a-video-crossfade-with-ffmpeg > > > > All I had to do is fix the syntax a little, add the audio, and voila'! > > > > Just in case you can use it for your project -- free of charge! :D > > > > Thanks for your answer... > > > > Merc. > > > > > > On 11 December 2015 at 15:44, Ryan Williams <r...@ryanwilliams.id.au> > > wrote: > > > > > Please note that I haven't tested any of the following suggestions. > > > I do however have dissolve with crossfade working a project of mine > > > and I have based these suggestions off working code. > > > > > > 1) Dissolve (Assuming the resolution of both videos is 1280x720 and > > > the audio format is identical) > > > > > > Notes: > > > '+9/TB' represents (length of 1st video in seconds - length of > > > dissolve in > > > seconds) > > > 'ns=43076’ represents (1 second at 44100 Hz sample rate - 1024 > > > samples) to work around a bug I reported (which may've been fixed > > already). > > > The reason for including the same files multiple times is a work > > > around filters which "scrub" (trim, atrim, select etc) thus causing > > > buffering problems during encoding. > > > > > > Visuals Explained: > > > * Create a 1 second fade in from the start of the 2nd video to be > > > the transition. > > > * Overlay the transition onto the 1st video so that the end lines up. > > > * Take the remainder of the 2nd video and concatenate it on the end. > > > > > > Audios Explained: > > > * Cossfade the 2nd videos audio with the first with a 1 second > > > overlap (Allowing for the 1024 sample bug I reported) > > > * Truncate that new audio stream to be the same length as the first > > > video > > > * Take the remainder of the 2nd videos audio and append it to the end. > > > > > > The reason for making the audio in 2 parts is so that each part can > > > be resynced with the visuals in the concat filter. > > > If you attempt to conjure the visuals completely separate from the > > > audio you may get lip sync issues during playback of the 2nd clip. > > > > > > ffmpeg \ > > > -y \ > > > -i "2.mp4" \ > > > -i "1.mp4" \ > > > -i "2.mp4" \ > > > -i "1.mp4" \ > > > -i "2.mp4" \ > > > -i "2.mp4" \ > > > -filter_complex " \ > > > [0:a] anullsink; \ > > > [0:v] trim='duration=1', format='pix_fmts=yuva420p', > > > fade='alpha=1:d=1:t=in', setpts='PTS-STARTPTS+9/TB' [transition-v]; > > > \ > > > > > > [1:v][transition-v] overlay='eval=init', setpts='PTS-STARTPTS' > > > [scene-0]; \ > > > [2:v] select='e=gte(t\, 1)', setpts='PTS-STARTPTS', > > > format='pix_fmts=yuva420p' [scene-1]; \ > > > > > > [3:a][4:a] acrossfade='ns=43076', atrim='duration=10' [track-0]; \ > > > [5:a] atrim='start=1', asetpts='PTS-STARTPTS' [track-1]; \ > > > > > > [scene-0][track-0] [scene-1][track-1] concat='n=2:v=1:a=1' > > > [output-v][output-a] \ > > > " \ > > > -map '[output-a]' \ > > > -strict experimental -acodec aac \ > > > -map '[output-v]' \ > > > -s 1280x720 \ > > > -vcodec mpeg4 \ > > > -pix_fmt +yuvj420p \ > > > -q:v 0 \ > > > "output.mp4" > > > > > > > > > 2) Slicing > > > ffmpeg -y -i 1.mp4 -filter_complex " \ > > > [0:v] trim='start=10.45:end=23.54' [trim-v]; \ > > > [0:a] atrim='start=10.45:end=23.54' [trim-a]; \ > > > [trim-v][trim-a] concat='n=1:v=1:a=1' [output] \ " \ -map '[output]' > > > \ -strict experimental -acodec aac \ -vcodec mpeg4 \ -q:v 0 \ > > > output.mp4 > > > > > > > > > 3) Overwriting > > > ffmpeg -y -i 1.mp4 -i 2.mp4 -filter_complex " \ > > > [0:v] trim='duration=31.5' [trim-v]; \ > > > [0:a] trim='duration=31.5' [trim-a]; \ > > > [trim-v][trim-a][1:v][1:a] concat='n=2:v=1:a=1' [output] \ " \ > > > -map '[output]' \ -strict experimental -acodec aac \ -vcodec mpeg4 \ > > > -q:v 0 \ > > > output.mp4 > > > > > > -----Original Message----- > > > From: ffmpeg-user [mailto:ffmpeg-user-boun...@ffmpeg.org] On Behalf > > > Of Tony Mobily > > > Sent: Friday, 11 December 2015 16:45 > > > To: ffmpeg-user@ffmpeg.org > > > Subject: [FFmpeg-user] Cross fading of videos > > > > > > Hi, > > > > > > I am new to ffmpeg. I am reading through the documentation -- > > > although there is a lot to take in! > > > I was wondering if you could give me a couple of hints on how to get > > > started. > > > > > > 1) Cross-dissolve > > > > > > I have two videos, 1.mp4 and 2.mp4, 10 seconds each. I want to > > > concatenate those videos, so that the first one has a cross-dissolve > > > with the second one when they are joined. If the effect goes on for > > > 1 second, this necessarily means that the resulting video will > > > necessarily be 19 seconds (since the last second of 1.mp4 will "blend" > > with the first second of 2.mp4. > > > Is this something that can be done with ffmpeg? > > > > > > 2) Slicing > > > > > > I have a 60 second video, and want to get a slice from the second > > > 10.45 to the second 23.54. Is that possible? > > > > > > 2) Overlay > > > I have two videos, 1.mp4 (30 seconds) and 2.mp4 (8.5 seconds). I > > > want to create a result video where 2.mp4 overwrites the last 8.5 > > > seconds of > > 1.mp4. > > > Is this possible without doing cut/concatenation? > > > > > > Thank you in advance -- and I apologise if I asked silly questions! > > > > > > Merc. > > > ᐧ > > > _______________________________________________ > > > ffmpeg-user mailing list > > > ffmpeg-user@ffmpeg.org > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > > > _______________________________________________ > > > ffmpeg-user mailing list > > > ffmpeg-user@ffmpeg.org > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > > _______________________________________________ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > > _______________________________________________ > > ffmpeg-user mailing list > > ffmpeg-user@ffmpeg.org > > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > > _______________________________________________ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > > _______________________________________________ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-user > _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user