@realcaseyrollins I think a shell script around ffmpeg is the way to go.
-count_frames to get the range
-vf select to just grab a certain frame
@realcaseyrollins looks like you would just have to pass -copyts as an option alongside -vf select
@realcaseyrollins here's a Bash script that shows what I meant. Working from a random frame is slower than from a timestamp but it gets there in the end. You just have to provide two arguments: video file and subtitle file.
#!/bin/bash
framecount=$(ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 "$1");
(( randomframe = ( $RANDOM * 2**15 + $RANDOM ) % $framecount ));
ffmpeg -copyts -i "$1" -vf "subtitles=$2,select=gte(n\,$randomframe)" -vframes 1 "$1.png"
@realcaseyrollins the documentation suggests it's possible, but I don't think I have anything with PGS subtitles that I could test. If you point me to a test case I can download from somewhere, I'll take a look
@realcaseyrollins if you can cut down the video to a few seconds of dialogue I would think you could upload that to e.g. dropbox under fair use rules. Your commands look pretty much like what I'd be trying though so I think you're on the right track