This GIF is from the new Section 31 film. The advert is the Paramount+ promotional clip released last week, which is a crossover between Star Trek and Spongbob: https://lemmy.world/post/28662901
Alternate sizes/qualities
Low quality GIF (376.3 KB):
Low quality WEBP (167.7 KB):
High quality WEBP (1.5 MB):
Full quality MP4 (786.8 KB):
What’s this from and what advert is being referenced? Sorry for my ignorance.
This GIF is from the new Section 31 film. The advert is the Paramount+ promotional clip released last week, which is a crossover between Star Trek and Spongbob: https://lemmy.world/post/28662901
When a 60 second advert has higher quality and more thought put into it than a feature length film
One is a freely available ad, the other is a feature length movie requiring a subscription.
Is this sorta stuff doable with free software? If so, can you point me in the right direction? I definitely have some scenes with this treatment in mind.
Yes, I make these with Kdenlive! I have been putting off finishing the tutorial I have been working on creating, but in short:
- Import video into Kdenlive
- Use Title Clips to add text
- Use various Effects (mainly Transform) to animate the text
- Render as MP4
- Use ffmpeg to convert the MP4 to WEBP or GIF
- Use gifski and gifsicle to further compress the GIF (the WEBP is fine as-is)
Here is a bash script that I wrote to use ffmpeg/gifski/gifsicle to convert all MP4 files in the current directory:
bash
#!/usr/bin/env bash #prerequisites: # ffmpeg # gifski # gifsicle # creates animated images out of all MP4 files # in the working directory, as well as creating # a thumbnail out of one frame # if argument passed to script, the thumbnail # will be created out of that frame, but none of # the animated files will be created # pass an argument to this script to specify # which frame to use as the thumbnail # if none passed, use default if [[ $1 == "" ]]; then frame=0.85 else frame=$1 fi # frame passed must be decimal < 1.0 and >= 0.0 if ! ([[ $frame =~ 0\.[0-9]+ ]]); then echo frame passed: $frame else # loop through all MP4 files in directory for file in *.mp4 do # only proceed if file found if [[ $file != *"*"* ]]; then # create paths input_path=$(pwd)/"$file" output_path_animated=${input_path%.*}.webp output_path_animated_low=${input_path%.*}-low.webp output_path_gif=${input_path%.*}.gif output_path_thumb=${input_path%.*}_thumb.webp # determine the exact frame to use as thumbnail frames_total=$(ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 "$input_path") thumb_frame=$(awk -vnumber="$(awk -v var1=$frames_total 'BEGIN { print (var1 * '$frame') }')" -vdiv="1" 'function ceiling(x){return x%1 ? int(x)+1 : x} BEGIN{ print ceiling(number/div) }') # if argument had been passed to script, skip creating # animated images and ONLY create thumbnail if [[ $1 == "" ]]; then #full webp ffmpeg -y -hide_banner -loglevel error -i "$input_path" -vcodec libwebp -lossless 0 -loop 0 -preset default -an -fps_mode passthrough -vf "fps=25, scale=-1:500" -quality 80 "$output_path_animated" #low webp ffmpeg -y -hide_banner -loglevel error -i "$input_path" -vcodec libwebp -lossless 0 -loop 0 -preset default -an -fps_mode passthrough -vf "fps=15, scale=-1:270" -quality 10 "$output_path_animated_low" #low gif ffmpeg -y -hide_banner -loglevel error -i "$input_path" -f yuv4mpegpipe - | gifski --quiet --height=270 --fps 10 --quality=50 --lossy-quality 50 -o "$output_path_gif" -;gifsicle -O3 --lossy=200 --colors 256 -o "$output_path_gif" "$output_path_gif" fi #thumb ffmpeg -y -hide_banner -loglevel error -i "$input_path" -vf "select=eq(n\,$thumb_frame), scale=-1:270" -c:v libwebp -quality 50 "$output_path_thumb" echo $input_path else echo MP4 not found fi done fi
Dang I may have to take a look at this, I always used Blender in the past but that’s a pretty heavy lift at times
Wow. Detailed steps plus a script, you have my gratitude 🙏
Another helpful resource would be
gif-template.kdenlive
from my 30 Rock GIF repo below. This will not work exactly as you need, as that project file is made for a 1920x1080 source video and Section 31 is 1920x800 or whatever. But if you are new to Kdenlive, it might help you understand effects and keyframes.
One is worthy of our shitposts. The other is not.
Edit: finally found the gif I intended
I keep hit a creative wall with the Sponge Trek crossover.
I know there’s a Castle Bravo=>Bikini Bottom / Omega Particle meme to be made, but I can’t find it.
Or something about Quimp the Ferengi and SpongeBob both being voiced by Tom Kenny.
And I’m sure there’s some pedantic point to me made about Patships fart drive and impulse engine exhaust…But I keep coming up dry
Wow, he voiced a lot of Lower Decks characters
Any thoughts on the various sizes/qualities in the post body here? When it comes to the version to post, I figure that the best middle ground between high quality and low file size is the one I labeled as “Low quality WEBP”. What file size should I aim for?
Goddamn, this is like peak-Reddit-era-quality. What was the user’s name back then? He was famous for his text-overlay gifs…
editingandlayout? heroofwar?
THE HOOF!! Man that was a time to witness.
One of those folks, could’ve been u/dragonfeatherz too. There were/are a bunch of em from r/HighQualityGifs.