On Thu, 31 May 2007, Francesco Romani wrote: > On Wed, 2007-05-30 at 21:10 -0700, David Liontooth wrote: > > Hi Cyrus and Francesco, > > > > I've solved the same problem by using tcextract and cutmp3; I'd be happy > > to send the scripts. > > And I'll happy to see them :) > > > It would be great if transcode could handle it! > > This shouldn't be too much work, it's matter to refactor/empower a bit > filter_astat and/or filter_detectsilence. > The real problem is that... real life work chases me restlessly :\
Hey, run for your life :) The following is very home-made stuff, but it works reliably (needs the latest cutmp3 -- check it out if you need ideas for how to detect silence): http://owens.cogweb.net/soundmerge.sh As a rough measure, but fast, I also extract the mp3 file and compress it to ogg using sox (pre 13.0), and then compare the sizes -- might be of interest to Cyrus: # Check for flags and assign variables if [ -e "$1/$2.avi" ] && [[ "$3" = [12345] ]] then DIR="$1" ; FIL="$2" ; DEV="$3" else echo -e "\nSee /usr/local/bin/audio-check-file for syntax.\n" fi # Define the audio working directory AUDIR="/tvspare/tmp" ; if [ ! -d $AUDIR ] ; then mkdir -p -m 775 $AUDIR ; fi # Extract the audio portion of the captured file and convert it to ogg if [ ! -s "$AUDIR/$FIL.mp3" ] ; then tcextract -i $DIR/$FIL.avi -x mp3 -a 3 > $AUDIR/$FIL.mp3 ; fi if [ ! -s "$AUDIR/$FIL.ogg" ] ; then sox $AUDIR/$FIL.mp3 -r 500 -p -c 1 $AUDIR/$FIL.ogg ; fi # Generate a ratio MP3SIZE=$(ls -l $AUDIR/$FIL.mp3 | cut -d' ' -f5) OGGSIZE=$(ls -l $AUDIR/$FIL.ogg | cut -d' ' -f5) SCORE=$(( $MP3SIZE/$OGGSIZE )) # Check the ratio for dropped audio (smaller files get higher scores) if [ $SCORE -gt 53 -a $MP3SIZE -gt 45000000 -o $SCORE -gt 54 ] then DROPPED="$(( ($MP3SIZE/958406)-($OGGSIZE/18550) ))" ; PERCENT="$(( ($DROPPED*100)/($MP3SIZE/958406) ))" echo -e "\nDROPPED SOUND FOR $DROPPED MINUTES ($PERCENT%, RAW SCORE $SCORE) in $FIL.avi\n" else echo -e "\nSound checks out fine ($SCORE) in $FIL.avi\n" fi