|
#!/bin/bash
|
|
|
|
#<get_videofile_length>
|
|
|
|
#ffmpeg -- get mediafile length
|
|
|
|
#ffmpeg -- get start time
|
|
#ffmpeg -- get end time
|
|
|
|
#end time =
|
|
|
|
###GET FILE LENGTH
|
|
|
|
DURATION_FORMATTED='-sexagesimal'
|
|
DURATION_LENGTH=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $DURATION_FORMATTED)
|
|
|
|
DURATION=$($DURATION_LENGTH $INPUT_FILE)
|
|
|
|
##PRINT FILE LENGTH
|
|
|
|
implement to kdialog
|
|
|
|
kdialog --msgbox "$(ffmpeg -i %u 2>&1 |grep -E '(Duration)|(Stream)' )"
|
|
|
|
|
|
echo -e $DURATION #Show media file duration in hours:minutes:seconds.microseconds
|
|
$DURATION_FORMATTED=''
|
|
echo -e $DURATION #Show media file duration in seconds
|
|
|
|
#USER INPUT - DESIRED CUT (IN SECONDS)
|
|
|
|
$START_TIME=<desired media start time in seconds (set 0 to default value)>
|
|
$END_TIME=<desired media end time in seconds (get video end time and use it as default value)>
|
|
$INPUT_FILEFORMAT=<get input fileformat (suffix)>
|
|
|
|
|
|
+STRING=$(kdialog --icon=system-search --caption='Search string' --inputbox='Enter String to Search' 2> /dev/null)
|
|
+
|
|
+if [ "$?" != "0" ]; then
|
|
+ exit 1
|
|
+fi
|
|
|
|
|
|
#0:03:14.921000
|
|
|
|
#tunti :: minuutti :: sekunti :: millisekunti
|
|
|
|
#outputtaa näin:
|
|
|
|
#if 0 hours, dont show the field if <value number before the first : is zero, replace with '' with sed>
|
|
#if 0 minutes, don't show the field if <value number between the first and the second : is zero, replace with '' with sed>
|
|
#if 0 seconds, don't show the field if <value number between the second : and the third . is zero, replace with '' with sed>
|
|
#if 0 milliseconds, don't show the field if <value number between the third and the fourth : is zero, replace with '' with sed>
|
|
|
|
#but final output can now be like
|
|
|
|
#and >>> final output
|
|
|
|
|
|
|
|
|
|
#ffmpeg -i <mediafile> -ss <start_time> -to <end_time> <mediafile_cut (get original format)>
|
|
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
INPUT_FILE=$1
|
|
OUTPUT_FILE=$(echo "$INPUT_FILE" | sed "s/\.\w*$/_cut.$INPUT_FILEFORMAT/")
|
|
ffmpeg -i "$INPUT_FILE" -ss $START_TIME -to $END_TIME -y "$OUTPUT_FILE"
|
|
shift
|
|
done
|
|
exit 0
|