[FFmpeg-user] Question about video compositing

Joshua Grauman jnfo at grauman.com
Tue Jan 10 07:14:32 EET 2017


There is probably a way to do it directly with ffmpeg on the commandline, 
but as I'm not an expert on that, I won't confuse you with guesses.

I have figured out how to generate raw video frames with a C++ program and 
have ffmpeg convert it into a video. My ffmpeg command looks like this:

./shm | ffmpeg -f rawvideo -pixel_format bgra -video_size 1024x768 -framerate 30 -i - -vcodec huffyuv overlay.avi

The ./shm program is my C++ program. If you generate pngs from your mpeg 
videos, you can read those in and generate the composit video. I use Qt a 
lot, and it would make the commandline program easier (handles reading 
pngs, compositing them, etc.).

Josh

> Ah, thanks a lot for the suggestion, but I should have been clearer that I
> need to do this in an automated fashion for arbitrary sets of videos so it
> has to be command-line (or a library I guess) so that I can integrate it
> into an automated pipeline in my app.
>
> Thanks,
> Alex
>
> On Tue, Jan 10, 2017 at 3:37 AM Steve Boyer <steveboyer85 at gmail.com> wrote:
>
>> > Any suggestions on if either of these approaches is better, or any
>> > alternatives? Thanks!
>> >
>>
>> Hi! I've done something similar to doing this, but I ended up using a
>> non-linear video editor. Specifically, I used kdenlive. It can do keyframe
>> animation, so combine that with fade-ins/fade from blacks (audio/video
>> filters) as well as fade-outs/fade to blacks, and you can do multiple
>> tracks combined into a single output video with animations/fades when a
>> stream ends. The downsides are that kdenlive, despite being the best video
>> editor on linux (IMHO), is a little buggy, is all CPU-based when it comes
>> to rendering and output file, for stability purposes it is recommended to
>> use a single thread, you will have to manually put things together and time
>> them, and need to use a GUI to do it all.
>>
>> I'd be happy to help with suggestions if you go this route, but understand
>> if you want to go a different way (and I'd be interested if anyone has
>> other suggestions how this can be accomplished via FFmpeg or CLI tools).
>>
>> Steve
>>
>>
>> > _______________________________________________
>> > ffmpeg-user mailing list
>> > ffmpeg-user at ffmpeg.org
>> > http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list