 So I've made an easy way to make a quick meme slideshow or image slideshow video I've wanted to do this for a while. It's very very simple Let me show you how it works now first off over here on this side of the I actually have it muted But this is one of my original videos on my YouTube channel where it was basically just me talking and then I'm to have like a slideshow of images or like, you know related to what I'm talking about, okay, so Now the thing about the one behind the scenes thing is it took me like a full week to make these videos like this video was like 13 minutes took me basically a full week, okay? Now I wanted to make something much much easier So I did and I've been meaning to do this for years, but I finally actually did it and let me show you how it works Okay, here's the ideal. Okay, actually I have a little subdirectory here called hell Actually, it has a whole bunch of stuff in it It I actually wanted to make another kind of meme slideshow video and here is how I did it Okay, I have an input file that looks like this basically first thing I did is I recorded my audio Okay, so I recorded my audio whatever I wanted to say I said And then what I did is I created a text file that looks like this and you'll see Originally while originally I didn't even have file names I just like had time codes and then like an idea of what I wanted to display Then I replaced that with whatever the file names. I wanted so basically this file is just time codes And it goes all the way through and it has file names on the other side. I then created a little script It's called a slider. Here's what slider does. It's a little ad hoc but the tools you need for this ffmpeg and Image magic and I think media info you need as well But you might have you probably have all of those already installed on your distribution because they're pulled as dependencies for a million other things So basically what this script does is you give it two arguments. Let's let's actually do it right here Let's redo it. Okay. It actually creates it creates this Source directory. I'm gonna get rid of that but here's how you do it slider and then you give it the name of the The file you have here with your time codes and that's time and then you give it the name of The audio you want it to put that with so I'm gonna you what was it? I think it's just called hell dot flack Okay, so the first thing it does it's gonna take a minute to do this But the first thing it does is it goes through all those images that the issue with these images is you want to make Sure that they're the right aspect aspect ratio and they're the right size So what I have it do here What I have it do here is loop through all these images and it's it changes them to be four, you know 1020p like, you know 1920 by 1020p So it's like full HD video and it also puts black a black background behind every single thing All of this is done in you know image magic. You can do it with this little image magic command here Let me actually show it to you this one right here. So this basically says Create an image of the saw that size With a black background and then merge it with that image resized so it fills up the entire thing Okay, so that's all you have it do and then it creates it So it takes all those images you give it and they I in my case I have basically all of them in the same directory You don't actually need them all in the same directory that you could pull them from any place on your computer I'm checking to see if there are any errors in that But basically what it does is it creates this source directory where it's you know exporting all or you know Creating all these images then what it does is it uses ffmpeg Okay, it uses ffmpeg to produce the video file Then the final video file is going to be your audio and it's going to be those images at the right time code Starting at the time code you give it. So for example, just go through this this thing here That's you know at time zero. This is going to play from zero to the next time code Which is five so this thing is going to play for the first five seconds then it transitions to the next one Then it transitions to the next so very very very easy to do so what I can do now It looks like it just finished I can actually pull this up and it is going to I'm gonna might as well Turn the the time codes on but it is going to display our video here now. I will say due to the way I have Due to the way that I have ffmpeg compile this video. It's actually like Basically without frames so some video players like erbal with only one frame You know at the right period. It saves file space. So it's actually it was actually a very quick upload It's very rare for me to be able to upload a video in 20 minutes, but this uploaded in 20 minutes on my internet That's fantastic. It's probably like, you know 30 megs or something But I was going to say due to the fact that it's made in this minimalist way You can't actually go forward and backward in some video players like MPV in the same way you usually do Because it I don't know. It's complicated how it works. I'm not going to explain it, but just know that So that's how it works and I will be clear So again, you could just run this script. I'll put it on my github So you can look at it. You can run this script and it should give you the The results you want, but there are a couple details to it. Let's actually so in the source file Here's what it's actually doing what it actually does what the script does is it goes through each line of those things and it converts This file to one that looks like this that is this input here where it says file and then the file named in duration That is what ffmpeg is capable of reading. You can use the the concat demuxer I mean, you know the let's see It looks like this. So if you say f concat and then give it an input file That can read a text format like this Basically what my script does is it just prepares the image files reads them and creates a file like this and then passes them on to To what's it called ffmpeg to deal with so yeah, that's that that's really all you have to do There are a couple things I'm thinking about adding to this as well for example Obviously, I can have um I can have a text or excuse me I can have images as input, but I'd like to have text as input like I'd like to be able to say Let's say or let's say in my original file. Let's say I want something like this I want text to appear at 17 seconds and it says oh Hi mark Or something like that just some random text You could I haven't implemented it yet, but you could for example Image magic has in it has the ability to actually take text and convert it to an image So I hurt could have it since if this line is supposed to be an image and or it's supposed to be text And then create a text file for it. So that's another thing. I'm thinking about doing I'm just trying to get the the bugs out of this, but I'll commit this to my github repository So you can look at that. I'm trying to think if there's anything else Yeah, it's worked pretty well. I need to double check some things, but yeah, this I think I'll be able to make some videos with it it's very easy because making videos is as easy as Recording the audio and then just putting in time codes. No clicking and dragging Nothing complicated. And of course this makes it even more extensible because I can basically just I don't it just works Okay, I'm thinking about I'm thinking about even more crazy things like maybe just like a D menu prompt to like So I can get things even faster, but yeah, this is very nice Usually I said in my old videos where I did like meme slideshows It'd take me like a full week to do if it was a 10 minute video This one took me a couple hours And it was mostly just me download like finding their images I wanted and stuff like that and most all of these happen to be were things on the internet if it were if it were like Images already had or something like that that would be super super easy So anyway, that's about it. I think that's all So check out the script. Hopefully it inspires you to do something else and I'll see you guys next time