this post was submitted on 27 Apr 2025
98 points (97.1% liked)

TenForward: Where Every Vulcan Knows Your Name

4839 readers
697 users here now

/c/TenFoward: Your home-away-from-home for all things Star Trek!

Re-route power to the shields, emit a tachyon pulse through the deflector, and post all the nonsense you want. Within reason of course.

~ 1. No bigotry. This is a Star Trek community. Remember that diversity and coexistence are Star Trek values. Any post/comments that are racist, anti-LGBT, or generally "othering" of a group will result in removal/ban.

~ 2. Keep it civil. Disagreements will happen both on lore and preferences. That's okay! Just don't let it make you forget that the person you are talking to is also a person.

~ 3. Use spoiler tags. This applies to any episodes that have dropped within 3 months prior of your posting. After that it's free game.

~ 4. Keep it Trek related. This one is kind of a gimme but keep as on topic as possible.

~ 5. Keep posts to a limit. We all love Star Trek stuff but 3-4 posts in an hour is plenty enough.

~ 6. Try to not repost. Mistakes happen, we get it! But try to not repost anything from within the past 1-2 months.

~ 7. No General AI Art. Posts of simple AI art do not 'inspire jamaharon'

~ 8. No Political Upheaval. Political commentary is allowed, but please keep discussions civil. Read here for our community's expectations.

Fun will now commence.


Sister Communities:

!startrek@lemmy.world

!theorville@lemmy.world

!memes@lemmy.world

!tumblr@lemmy.world

!lemmyshitpost@lemmy.world

Want your community to be added to the sidebar? Just ask one of our mods!


Creator Resources:

Looking for a Star Trek screencap? (TrekCore)

Looking for the right Star Trek typeface/font for your meme? (Thank you @kellyaster for putting this together!)


founded 1 year ago
MODERATORS
 

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/qualitiesLow quality GIF (376.3 KB):
collapsed inline media

Low quality WEBP (167.7 KB):

collapsed inline media

High quality WEBP (1.5 MB):

collapsed inline media

Full quality MP4 (786.8 KB):

collapsed inline media

you are viewing a single comment's thread
view the rest of the comments
[โ€“] SatyrSack@feddit.org 4 points 16 hours ago (2 children)

Yes, I make these with Kdenlive! I have been putting off finishing the tutorial I have been working on creating, but in short:

  1. Import video into Kdenlive
  2. Use Title Clips to add text
  3. Use various Effects (mainly Transform) to animate the text
  4. Render as MP4
  5. Use ffmpeg to convert the MP4 to WEBP or GIF
  6. 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

[โ€“] MalikMuaddibSoong@startrek.website 2 points 16 hours ago (1 children)

Wow. Detailed steps plus a script, you have my gratitude ๐Ÿ™

[โ€“] SatyrSack@feddit.org 2 points 15 hours ago* (last edited 15 hours ago)

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.

https://codeberg.org/saworden/30-rock-gifs

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