Advertisement
Guest User

Untitled

a guest
Jan 9th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. file=$(basename "$1")
  4.  
  5. ffprobe -loglevel quiet -show_frames "$1" | while read line
  6. do
  7. [[ "$line" = "media_type=video" ]] && videoframe=1
  8. [[ "$line" = "key_frame=1" ]] && [[ $videoframe ]] && keyframe=1
  9. [[ "$line" == "[/FRAME]" ]] && unset videoframe && unset keyframe
  10. if [[ "$line" = pkt_dts_time=* && $videoframe && $keyframe ]]
  11. then
  12. IFS="= " read key time <<< $line
  13. if [[ $(echo "$time<$2"| bc) == 1 ]]
  14. then
  15. prevtime=$time
  16. else
  17. s=$(echo "$prevtime-0.05" | bc)
  18. diff=$(echo "$2-$s" | bc)
  19. t=$(echo "$diff+$3" | bc)
  20. ffmpeg -i "$1" -ss $s -t $t -acodec copy -vcodec copy -sn "$file-$s.mp4"
  21. exit
  22. fi
  23. fi
  24. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement