zombie_transcoding_scripts/researchscripts.md
zombie c4559b07bf
added researchscripts.md
ball is a vim swp file i gotta fix it later
2023-07-23 04:43:14 -04:00

2.4 KiB
Executable file

Neat comparison commands

this command will take a input video and transcode it for every crf value in a range

crfleveltest.sh

#!/bin/bash

for i in {0..63}
do
    echo da real time bro $i >> timetime
    date >> timetime
    ffmpeg -i originalencoding.mkv -c:a copy -c:v libsvtav1 -preset 8 -crf $i svtav1/crftest/svtav1_$i.mkv
    #echo \n >> timetime
done

this will take a specific frame out off all the videos in a folder which is useful for comparing the crf values on a specific frame frameextractor.sh

#!/bin/bash

output_directory="png"

for video in *mkv; do
  filename=$(basename -- "$video")
  filename_no_ext="${filename%.*}"
  ffmpeg -ss 00:00:10 -i "$video" -vframes 1 "$output_directory/$filename_no_ext.png"
done

this will take all the file names of the pngs and put them into subtitles so you cam see what video (crf value typically) the current frame was from subtitles.py

import os

# Assuming files are in the current directory.
# Modify this path to the location of your PNG files if needed.
files = sorted([f for f in os.listdir('.') if f.endswith('.png')])

# Start time for each subtitle in seconds
start_time = 0.0

# The duration each subtitle is displayed for in seconds
duration = 0.1

with open('subtitles.srt', 'w') as f:
    for i, filename in enumerate(files, start=1):
        # Format start and end times
        start_h = int(start_time // 3600)
        start_m = int((start_time % 3600) // 60)
        start_s = int(start_time % 60)
        start_ms = int(round((start_time % 1) * 1000))
        start = "{:02d}:{:02d}:{:02d},{:03d}".format(start_h, start_m, start_s, start_ms)

        end_time = start_time + duration
        end_h = int(end_time // 3600)
        end_m = int((end_time % 3600) // 60)
        end_s = int(end_time % 60)
        end_ms = int(round((end_time % 1) * 1000))
        end = "{:02d}:{:02d}:{:02d},{:03d}".format(end_h, end_m, end_s, end_ms)

        # Write subtitle entry
        f.write(f"{i}\n{start} --> {end}\n{filename}\n\n")

        # Update start time for next subtitle
        start_time += duration

this will combine all the pngs and subtitles to a video to be watched just make sure the framerates match between this command and rhe ones specified in the subtitle command pngcombiner

ffmpeg -framerate 10 -i svtav1_%02d.png -i subtitles.srt -c:v libx264 -crf 10 output.mkv