diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/audio_channels_diff | 34 | ||||
-rw-r--r-- | tools/audio_check_noise | 9 | ||||
-rw-r--r-- | tools/audio_check_volume | 9 | ||||
-rw-r--r-- | tools/audio_extract | 10 | ||||
-rw-r--r-- | tools/audio_format | 8 | ||||
-rw-r--r-- | tools/audio_gain_volume | 9 | ||||
-rw-r--r-- | tools/audio_remove_noise | 9 | ||||
-rwxr-xr-x | tools/audio_split | 8 | ||||
-rwxr-xr-x | tools/audio_stats | 3 | ||||
-rw-r--r-- | tools/check_diskspace | 4 | ||||
-rwxr-xr-x | tools/convert2theora | 39 | ||||
-rw-r--r-- | tools/convert2vorbis | 38 | ||||
-rwxr-xr-x | tools/intro | 2 | ||||
-rw-r--r-- | tools/join_video | 9 | ||||
-rwxr-xr-x | tools/metadata | 58 | ||||
-rwxr-xr-x | tools/outro | 7 | ||||
-rw-r--r-- | tools/process-video | 50 | ||||
-rwxr-xr-x | tools/theora-test | 12 | ||||
-rw-r--r-- | tools/theora.csv | 19 |
19 files changed, 238 insertions, 99 deletions
diff --git a/tools/audio_channels_diff b/tools/audio_channels_diff index 804687b..aba08cc 100755 --- a/tools/audio_channels_diff +++ b/tools/audio_channels_diff @@ -1,38 +1,46 @@ #!/bin/bash # -# Date: 2009-12-10 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # # Check if the left and right channel is equal. +# if not equal, exit code 3.. # ext-format må fikses!! hmm EXT=`echo "$1"|awk -F . '{print $NF}'` NAME=`basename $1 .$EXT` -#FORMAT=`./audio_format $1` +FORMAT=`./audio_format $1` if [ -z "$1" ]; then echo "Usage: $0 <video-file>" exit 1 fi -if [ ! -f $BASENAME.wav ]; then - echo "File $BASENAME.wav does not exists" - ./audio_extract $1 0 60 +echo "Checking $1 audio channels..." + +if [ ! -f "$NAME.$FORMAT" ]; then + echo "File $NAME.$FORMAT does not exists." + ./audio_extract $1 0 60 # øke til feks 2? fi -./audio_split $NAME.wav -./audio_stats $NAME-left.wav &> $NAME-left.wav.stat -./audio_stats $NAME-right.wav &> $NAME-right.wav.stat +./audio_split $NAME.$FORMAT +./audio_stats $NAME-left.wav &> $NAME-left.stat +./audio_stats $NAME-right.wav &> $NAME-right.stat -LEFT=`md5sum $NAME-left.wav.stat | awk '{print $1}'` -RIGHT=`md5sum $NAME-right.wav.stat | awk '{print $1}'` +# find a better method to compare audio! +LEFT=`grep Mean $NAME-left.stat | md5sum` +RIGHT=`grep Mean $NAME-right.stat | md5sum` if [ "$LEFT" == "$RIGHT" ]; then - echo "eq" + echo "Audio channels is equal." + rm $NAME.$FORMAT $NAME-left* $NAME-right* + exit else - echo "nq" + echo "Audio channels is not equal." + rm $NAME.$FORMAT $NAME-left* $NAME-right* + exit 3 fi -rm $NAME.wav $NAME-left* $NAME-right* + diff --git a/tools/audio_check_noise b/tools/audio_check_noise new file mode 100644 index 0000000..f914834 --- /dev/null +++ b/tools/audio_check_noise @@ -0,0 +1,9 @@ +#!/bin/bash + +EXT=`echo "$1"|awk -F . '{print $NF}'` +NAME=`basename $1 .$EXT` + +if [ -z "$2" ]; then + echo "Usage: $0 <video-file> <csv-file>" + exit 1 +fi diff --git a/tools/audio_check_volume b/tools/audio_check_volume new file mode 100644 index 0000000..f914834 --- /dev/null +++ b/tools/audio_check_volume @@ -0,0 +1,9 @@ +#!/bin/bash + +EXT=`echo "$1"|awk -F . '{print $NF}'` +NAME=`basename $1 .$EXT` + +if [ -z "$2" ]; then + echo "Usage: $0 <video-file> <csv-file>" + exit 1 +fi diff --git a/tools/audio_extract b/tools/audio_extract index bd0afa8..ee3c96f 100644 --- a/tools/audio_extract +++ b/tools/audio_extract @@ -1,6 +1,6 @@ #!/bin/bash # -# Date: 2009-11-30 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # @@ -15,9 +15,11 @@ if [ -z "$1" ]; then exit 1 fi -if [ "$FORMAT" == "pcm_s16le" ]; then - FORMAT="wav" -fi +#if [ "$FORMAT" == "pcm_s16le" ]; then +# FORMAT="wav" +#fi + +echo "Extracting $NAME.$FORMAT..." if [ "$3" ]; then #DURATION="30" #`./duration$1` diff --git a/tools/audio_format b/tools/audio_format index 37760d2..96523cb 100644 --- a/tools/audio_format +++ b/tools/audio_format @@ -13,9 +13,9 @@ if [ -z "$1" ]; then exit 1 fi -#if [ "$FORMAT" == "pcm_s16le" ]; then -# echo "wav" -#else +if [ "$FORMAT" == "pcm_s16le" ]; then + echo "wav" +else echo $FORMAT -#fi +fi diff --git a/tools/audio_gain_volume b/tools/audio_gain_volume new file mode 100644 index 0000000..f914834 --- /dev/null +++ b/tools/audio_gain_volume @@ -0,0 +1,9 @@ +#!/bin/bash + +EXT=`echo "$1"|awk -F . '{print $NF}'` +NAME=`basename $1 .$EXT` + +if [ -z "$2" ]; then + echo "Usage: $0 <video-file> <csv-file>" + exit 1 +fi diff --git a/tools/audio_remove_noise b/tools/audio_remove_noise new file mode 100644 index 0000000..f914834 --- /dev/null +++ b/tools/audio_remove_noise @@ -0,0 +1,9 @@ +#!/bin/bash + +EXT=`echo "$1"|awk -F . '{print $NF}'` +NAME=`basename $1 .$EXT` + +if [ -z "$2" ]; then + echo "Usage: $0 <video-file> <csv-file>" + exit 1 +fi diff --git a/tools/audio_split b/tools/audio_split index a5e5525..48d3065 100755 --- a/tools/audio_split +++ b/tools/audio_split @@ -14,5 +14,9 @@ if [ -z "$1" ]; then exit 1 fi -sox $1 -c 1 $NAME-left.$EXT mixer -l 2> /dev/null -sox $1 -c 1 $NAME-right.$EXT mixer -r 2> /dev/null +# sox FAIL formats: can't open output file `1-left.mp2': SoX was compiled without MP3 encoding support +# kan ikke encode til mp{2,3}... + +echo "Splitting up audio to a left- and right-file..." +sox $1 -c 1 $NAME-left.wav mixer -l 2> /dev/null +sox $1 -c 1 $NAME-right.wav mixer -r 2> /dev/null diff --git a/tools/audio_stats b/tools/audio_stats index be677aa..4560004 100755 --- a/tools/audio_stats +++ b/tools/audio_stats @@ -1,6 +1,6 @@ #!/bin/bash # -# Date: 2009-12-10 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # @@ -11,4 +11,5 @@ if [ -z "$1" ]; then exit 1 fi +echo "Generating audio statistics for $1..." sox $1 -n stat diff --git a/tools/check_diskspace b/tools/check_diskspace index 7b7031c..d30f5e5 100644 --- a/tools/check_diskspace +++ b/tools/check_diskspace @@ -1,6 +1,6 @@ #!/bin/bash # -# Date: 2009-12-04 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # @@ -14,6 +14,8 @@ if [ -z "$1" ]; then exit 1 fi +echo "Checking for enough disk space to continue..." + if [ $DISK -le $FILE ]; then echo "Error: Not enough disk space to continue! Aborting." exit 1 diff --git a/tools/convert2theora b/tools/convert2theora index 93f464f..98b049a 100755 --- a/tools/convert2theora +++ b/tools/convert2theora @@ -1,6 +1,6 @@ #!/bin/bash # -# Date: 2009-12-10 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # @@ -9,42 +9,27 @@ EXT=`echo "$1"|awk -F . '{print $NF}'` BASENAME=`basename $1 .$EXT` -WHAT=`./csv $2 $1 what` -DATE=`./csv $2 $1 date` -LOCATION=`./csv $2 $1 location` -TITLE=`./csv $2 $1 title` -NAME=`./csv $2 $1 name` -LICENSE=`./csv $2 $1 license` -ORGANIZATION=`./csv $2 $1 organization` -CONTACT=`./csv $2 $1 contact` +VIDEOQUALITY=8 +AUDIOQUALITY=4 if [ -z "$1" ]; then - echo "Usage: $0 <video-file> [<csv-file>]" + echo "Usage: $0 <video-file> [<video-quality> <audio-quality>]" exit 1 fi +if [ "$3" ]; then + $VIDEOQUALITY=$2 + $AUDIOQUALITY=$3 +fi + # todo: pass på å behold 4:3/16:9 i x:y.. if [ ! -f "$BASENAME.ogv" ] ; then - echo "Generating $BASENAME.ogv" - - if [ $2 ]; then - ffmpeg2theora $1 -o $BASENAME.ogv \ - --width 384 --height 288 \ - --artist "$NAME" \ - --title "$TITLE" \ - --date "$DATE" \ - --location "$LOCATION" \ - --organization "$ORGANIZATION" \ - --copyright "$COPYRIGHT" \ - --license "$LICENSE" \ - --contact "$CONTACT" \ + echo "Generating $BASENAME.ogv..." + ffmpeg2theora $1 -o $BASENAME.ogv \ + --videoquality $VIDEOQUALITY --audioquality $AUDIOQUALITY \ > "$BASENAME.ogv-compresslog" 2>&1 - else - ffmpeg2theora $1 -o $BASENAME.ogv \ # --width 384 --height 288 - > "$BASENAME.ogv-compresslog" 2>&1 - fi else echo "$BASENAME.ogv allready exist!" exit 1 diff --git a/tools/convert2vorbis b/tools/convert2vorbis index b3e3809..2a7b2d2 100644 --- a/tools/convert2vorbis +++ b/tools/convert2vorbis @@ -1,58 +1,38 @@ #!/bin/bash # -# Date: 2009-12-10 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # # Convert the sound from the video to Ogg Vorbis. -#./require oggenc vorbis-tools - -# todo: add tag license and copyright metadata (-c tag=value), more tags? -# * language, publisher, copyright -# legg til require EXT=`echo "$1"|awk -F . '{print $NF}'` BASENAME=`basename $1 .$EXT` BITRATE="64" -DATE=`./csv $2 $1 date` -TITLE=`./csv $2 $1 title` -WHAT=`./csv $2 $1 what` -NAME=`./csv $2 $1 name` -GENRE=`./csv $2 $1 genre` -LOCATION=`./csv $2 $1 location` -LICENSE=`./csv $2 $1 license` - if [ -z "$1" ]; then - echo "Usage: $0 <video-file> [<csv-file>]" + echo "Usage: $0 <video-file> [<audio-quality>]" exit 1 fi +./require oggenc # vorbis-tools + if [ ! -f $BASENAME.wav ]; then echo "File $BASENAME.wav does not exists" ./audio_extract $1 fi -echo "Generating $BASENAME.ogg ($BITRATE kbps)" +echo "Generating $BASENAME.ogg ($BITRATE kbps)..." # --downmix #Downmix stereo to mono. Only allowed on stereo input. # sjekke om det er stero først? hvis ja, legg på downmix.. if [ "$2" ]; then -echo "test" - oggenc "$BASENAME.wav" --downmix -b $BITRATE \ - --date "$DATE" \ - --title "$TITLE" \ - --album "$WHAT" \ - --artist "$NAME" \ - --genre "$GENRE" \ - 2>&1 -# > "$BASENAME.ogg-compresslog" 2>&1 -else - oggenc "$BASENAME.wav" --downmix -b $BITRATE \ - 2>&1 - #> "$BASENAME.ogg-compresslog" 2>&1 + $BITRATE=$2 fi + +oggenc "$BASENAME.wav" --downmix -b $BITRATE \ + 2>&1 diff --git a/tools/intro b/tools/intro index 52e6572..e7c969c 100755 --- a/tools/intro +++ b/tools/intro @@ -23,6 +23,8 @@ if [ -z "$2" ]; then exit 1 fi +echo "Generating intro-video from $2 for $1..." + # LOGO ./image_logo $1 intro-$COUNT white $LOGO ./fade $BASENAME-intro-$COUNT.png 3 white diff --git a/tools/join_video b/tools/join_video index b50ae07..6663148 100644 --- a/tools/join_video +++ b/tools/join_video @@ -1,11 +1,14 @@ #!/bin/bash # -# Date: 2009-11-30 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # # Joins together two or more video-files +EXT=`echo "$1"|awk -F . '{print $NF}'` +NAME=`basename $1 .$EXT` + if [ -z "$3" ]; then echo "Usage: $0 <new-file> <video-file> <video-file> [...]" exit 1 @@ -21,8 +24,10 @@ done unset array[0] # todo: Concatenating works with MPEG-1, MPEG-2 PS and DV -if [ ! -f "$basename.dv" ] ; then +if [ $EXT == "dv" ] ; then +echo "Joining video-files using cat..." cat ${array[*]} > $1 else +echo "Joining video-files using mencoder.." mencoder -oac copy -ovc copy -idx -o ${array[*]} fi diff --git a/tools/metadata b/tools/metadata new file mode 100755 index 0000000..1d7b30d --- /dev/null +++ b/tools/metadata @@ -0,0 +1,58 @@ +#!/bin/bash +# +# Date: 2009-12-10 +# Author: Ole Kristian Lien +# License: GNU General Public License +# +# Adds metadata to video/audio + +# todo: fiks csv ext.. kan ikke være hardkodet.. +# video og lyd, blir dobbelt av comments.. ikke bra - hvis funker, split opp if-ene!!! +# mangler i vlc: Language, Publisher +# utf8- øæå funker dårlig + +EXT=`echo "$1"|awk -F . '{print $NF}'` +BASENAME=`basename $1 .$EXT` + +WHAT=`./csv $2 $BASENAME.dv what` +DATE=`./csv $2 $BASENAME.dv date` +LOCATION=`./csv $2 $BASENAME.dv location` +GENRE=`./csv $2 $BASENAME.dv genre` +TITLE=`./csv $2 $BASENAME.dv title` +NAME=`./csv $2 $BASENAME.dv name` +LICENSE=`./csv $2 $BASENAME.dv license` +ORGANIZATION=`./csv $2 $BASENAME.dv organization` +CONTACT=`./csv $2 $BASENAME.dv contact` + +if [ -z "$1" ]; then + echo "Usage: $0 <video/audio-file> [<csv-file>]" + exit 1 +fi + +./require oggz-comment #oggz-tools +#./require vorbiscomment #vorbis-tools + +if [ $EXT == "ogg" ] || [ $EXT == "ogv" ]; then + if [ "$2" ]; then + echo "Writing metadata to $1..." + oggz-comment $1 -o $BASENAME-comment.$EXT --content-type theora\ + TITLE="$TITLE" \ + ALBUM="$WHAT" \ + ARTIST="$NAME" \ + PERFORMER="$NAME" \ + COPYRIGHT="$ORGANIZATION" \ + LICENSE="$LICENSE" \ + ORGANIZATION="$ORGANIZATION" \ + GENRE="$GENRE" \ + DATE="$DATE" \ + LOCATION="$LOCATION" \ + CONTACT="$CONTACT" + +# rm, mv + + else + oggz-comment -l $1 + fi +else + echo "File format is not supported yet." +fi diff --git a/tools/outro b/tools/outro index a898231..c9fc197 100755 --- a/tools/outro +++ b/tools/outro @@ -1,6 +1,6 @@ #!/bin/bash # -# Date: 2009-12-10 +# Date: 2009-12-16 # Author: Ole Kristian Lien # License: GNU General Public License # @@ -20,6 +20,8 @@ if [ -z "$1" ]; then exit 1 fi +echo "Generating outro-video from $2 for $1..." + ./image_text $1 outro-$COUNT black "TAKK TIL" ./fade $BASENAME-outro-$COUNT.png 3 black rm $BASENAME-outro-$COUNT.png @@ -42,7 +44,7 @@ IFS=' for i in $TAKK ; do HVA=`echo "$i" | cut -d ":" -f 1` HVEM=`echo "$i" | cut -d ":" -f 2` -# echo "TAKK: $HVA - $HVEM" + ./image_text $1 outro-$COUNT black "$HVEM" "$HVA" ./fade $BASENAME-outro-$COUNT.png 1 black rm $BASENAME-outro-$COUNT.png @@ -51,7 +53,6 @@ done IFS=$IFS for i in $URL ; do -# echo "URL: $i" ./image_text $1 outro-$COUNT black " " ./fade $BASENAME-outro-$COUNT.png 1 black rm $BASENAME-outro-$COUNT.png diff --git a/tools/process-video b/tools/process-video index a545427..4cb6463 100644 --- a/tools/process-video +++ b/tools/process-video @@ -1,4 +1,10 @@ #!/bin/bash +# +# Date: 2009-12-16 +# Author: Ole Kristian Lien +# License: GNU General Public License +# +# Process a video-file automatically EXT=`echo "$1"|awk -F . '{print $NF}'` NAME=`basename $1 .$EXT` @@ -9,21 +15,45 @@ if [ -z "$2" ]; then exit 1 fi -echo "Checking diskspace..." -./check_diskspace $1 -echo "Checking that both audio channeles is equal..." +echo "Processing video $1 with info from $2..." + +#./check_diskspace $1 +#if [ "${?}" == "1" ] ; then +# exit 1 +#fi + #./audio_channels_diff $1 -echo "Generating intro..." +#if [ "${?}" == "3" ] ; then +# echo "should run ./merge_audio_stereo_track $1...neh.." + #./merge_audio_stereo_track $1 +#fi + + +# ./audio_check_silence + +# ./audio_check_noise $1 + # if x do ./audio_remove_noise + +# bytte plass? ^ v + +# ./audio_check_volume $1 + # if x do ./audio_gain_volume + +# mv fade video/image_fade +# ./audio_fade + #./intro $1 $2 -echo "Generating outro..." #./outro $1 $2 -echo "Joining videoes..." #./join_video $NAME-new.$EXT $NAME-intro.$EXT $1 $NAME-outro.$EXT +#rm $NAME-intro.$EXT $NAME-outro.$EXT +#echo "Backing up $1 to $NAME-old.$EXT..." #mv $1 $NAME-old.$EXT #mv $NAME-new.$EXT $1 -echo "Converting to theora..." -./convert2theora $1 $2 -echo "Converting to vorbis..." -./convert2vorbis $1 $2 +./convert2theora $1 +./metadata $NAME.ogv $2 + +./convert2vorbis $1 +./metadata $NAME.ogg $2 + diff --git a/tools/theora-test b/tools/theora-test index 8a1a5d4..b4e76e5 100755 --- a/tools/theora-test +++ b/tools/theora-test @@ -1,5 +1,9 @@ #!/bin/bash +# maskin info +# ffmpeg versjon, libtheora +# logg til fil + EXT=`echo "$1"|awk -F . '{print $NF}'` NAME=`basename $1 .$EXT` @@ -8,7 +12,7 @@ if [ -z "$1" ]; then exit 1 fi -echo '"Filename","Video Quality","Video Bitrate (kb/s)","Audio Quality","Audio Bitrate (kb/s)","Filesize(Mb)"' > $NAME.txt +echo '"Filename","Video Quality","Video Bitrate (kb/s)","Audio Quality","Audio Bitrate (kb/s)","Filesize(Mb)","Time"' #> $NAME.txt for i in {5..10}; do VQUALITY=$i @@ -18,10 +22,12 @@ for i in {5..10}; do --videoquality $VQUALITY \ --audioquality $AQUALITY \ > "$NAME.ogv-compresslog" 2> time.txt - TIME=`cat time.txt` + TIME=`tail -1 time.txt ` SIZE=`du -m $NAME-v$VQUALITY-a$AQUALITY.ogv | awk '{print $1}'` VBITRATE=`./video_bitrate $NAME-v$VQUALITY-a$AQUALITY.ogv` ABITRATE=`./audio_bitrate $NAME-v$VQUALITY-a$AQUALITY.ogv` -echo "\"$NAME-v$VQUALITY-a$AQUALITY.ogv\",\"$VQUALITY\",\"$VBITRATE\",\"$AQUALITY\",\"$ABITRATE\",\"$SIZE\",\"$TIME\"" >> $NAME.txt +echo "\"$NAME-v$VQUALITY-a$AQUALITY.ogv\",\"$VQUALITY\",\"$VBITRATE\",\"$AQUALITY\",\"$ABITRATE\",\"$SIZE\",\"$TIME\"" #>> $NAME.txt done done + +rm time.txt diff --git a/tools/theora.csv b/tools/theora.csv new file mode 100644 index 0000000..d8bacf7 --- /dev/null +++ b/tools/theora.csv @@ -0,0 +1,19 @@ +"Filename","Video Quality","Video Bitrate (kb/s)","Audio Quality","Audio Bitrate (kb/s)","Filesize(Mb)","Time" +"test-v5-a3.ogv","5","514","3","112","4","0:48.68" +"test-v5-a4.ogv","5","517","4","128","4","0:44.56" +"test-v5-a5.ogv","5","526","5","160","4","0:48.34" +"test-v6-a3.ogv","6","659","3","112","5","0:43.65" +"test-v6-a4.ogv","6","662","4","128","5","0:43.47" +"test-v6-a5.ogv","6","671","5","160","5","0:43.45" +"test-v7-a3.ogv","7","823","3","112","6","0:53.44" +"test-v7-a4.ogv","7","825","4","128","6","0:46.20" +"test-v7-a5.ogv","7","834","5","160","6","0:46.16" +"test-v8-a3.ogv","8","1179","3","112","9","0:52.61" +"test-v8-a4.ogv","8","1181","4","128","9","0:53.46" +"test-v8-a5.ogv","8","1190","5","160","9","0:52.61" +"test-v9-a3.ogv","9","1686","3","112","13","1:04.71" +"test-v9-a4.ogv","9","1689","4","128","13","1:04.64" +"test-v9-a5.ogv","9","1698","5","160","13","1:04.71" +"test-v10-a3.ogv","10","2203","3","112","16","1:05.61" +"test-v10-a4.ogv","10","2206","4","128","16","1:05.74" +"test-v10-a5.ogv","10","2215","5","160","16","1:06.13" |