From db737d1959f2507cbda063f69457afe06fc5815b Mon Sep 17 00:00:00 2001 From: tamara-slosarek Date: Thu, 7 Mar 2024 14:23:40 +0100 Subject: [PATCH] feat(#687): fix cutting videos --- .../generate_screencast.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/generate_screenshots/generate_screencast.sh b/app/generate_screenshots/generate_screencast.sh index a5c35f1f..50be89f5 100644 --- a/app/generate_screenshots/generate_screencast.sh +++ b/app/generate_screenshots/generate_screencast.sh @@ -81,16 +81,24 @@ format_seconds_as_time() { for ((i=2; i<${#timestamps[@]}-1; i++)) do description=${descriptions[i]} - echo "Cutting $description" + start_offset=0 + end_offset=0 start_seconds=$(get_seconds_since_start ${timestamps[i-1]}) + ((start_seconds-=$start_offset)) end_seconds=$(get_seconds_since_start ${timestamps[i]}) + ((end_seconds+=$end_offset)) + if [ $start_seconds -eq $end_seconds ]; then + ((end_seconds+=1)) + fi start_time=$(format_seconds_as_time start_seconds) end_time=$(format_seconds_as_time end_seconds) - ## Use ffmpeg to cut, see https://stackoverflow.com/a/42827058 + echo "Cutting $description ($start_time – $end_time)" video_path="${output_directory}${description}.mov" - ffmpeg -y -loglevel error \ + log_level="warning" + ffmpeg -y -loglevel "$log_level" \ + -i "$full_video_path" \ -ss "$start_time" \ -to "$end_time" \ - -i "$full_video_path" \ - -c copy "$video_path" + -vcodec libx264 -pix_fmt yuv420p \ + "$video_path" done