Date: Fri, 21 Nov 2003 23:18:28 -0500 From: Randy Pratt <rpratt1950@earthlink.net> To: Michael Joyner <mjoyner@hq.dyns.cx> Cc: freebsd-multimedia@freebsd.org Subject: Re: vcdimager and "bad packet" Message-ID: <20031121231828.34008c49.rpratt1950@earthlink.net> In-Reply-To: <3FBDB7C8.2000201@hq.dyns.cx> References: <20031121013022.0d274b6d.rpratt1950@earthlink.net> <3FBDB7C8.2000201@hq.dyns.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 21 Nov 2003 01:59:20 -0500 Michael Joyner <mjoyner@hq.dyns.cx> wrote: > You can "transcode" the avi files to divx avi file using mencoder before > feeding to transcode (including size translations, etc), > this will most likey make transcode much happier! > > also the following script that I use for recoding avis may be useful. :) > (doesn't use transcode) > > you will of course have to fix it up for your situation, file system > also, note that it is definately a work in progress. :) > btw, all the spanish segments were taken from a web site somewhere, > unfortunately, don't know where, so can't give proper copyright stuff > I think it was GPL though. Thanks! I'll give this a try once I study the script a bit. I certainly appreciate the response. Thank you Randy > #!/bin/sh > > AUDIORATE=224 > WIDTH_OUT=480 > HEIGHT_OUT=480 > CHAPTERS="0:00,10:00,20:00,30:00,40:00,50:00,1:00:00,1:10:00,1:20:00,1:30:00,1:40:00,1:50:00,2:00:00,2:10:00,2:20:00,2:30:00,2:40:00,2:50:00,3:00:00,3:10:00,3:20:00,3:30:00,3 > :40:00,3:50:00,4:00:00" > #CHAPTERS="0" > > BASE_CD=700 > > cd ~/dvdrip > for i in avis/*; do > if [ ! -s "$i" ]; then rm -vf "$i"; fi > done > > TITLE_COUNT=0 > for i in avis/*; do > TITLE_COUNT=$(($TITLE_COUNT+1)); > done > xmessage -timeout 30 -center "Found $TITLE_COUNT Titles for miniDVD" & > CDSIZE=$(($BASE_CD/$TITLE_COUNT)) > # CHOICE="`xmessage -print -center -buttons "1/10 CD,1/5 CD,1/4CD,1/3 > CD,1/2 CD,ONE CD" \ > # "How Many CD's for these Movies?"`" > # echo $CHOICE > # if [ "$CHOICE" = "1/10 CD" ]; then CDSIZE=$(($BASE_CD/10)); fi > # if [ "$CHOICE" = "1/5 CD" ]; then CDSIZE=$(($BASE_CD/5)); fi > # if [ "$CHOICE" = "1/4 CD" ]; then CDSIZE=$(($BASE_CD/4)); fi > # if [ "$CHOICE" = "1/3 CD" ]; then CDSIZE=$(($BASE_CD/3)); fi > # if [ "$CHOICE" = "1/2 CD" ]; then CDSIZE=$(($BASE_CD/2)); fi > # if [ "$CHOICE" = "ONE CD" ]; then CDSIZE=$(($BASE_CD)); fi > > rm -rfv vcd3/* > for i in avis/*; do > > #imported script stuff (that is in Espanol) > tcprobe -i "$i" > vcd3/info > > WIDTH=`grep '\[avilib\] V:' vcd3/info | \ > perl -e ' $line=<STDIN> ; $line =~ /width=(\d+)/ ; > print $1' ` > HEIGHT=`grep '\[avilib\] V:' vcd3/info | \ > perl -e ' $line=<STDIN> ; $line =~ /height=(\d+)/ ; > print $1' ` > FPS=`grep '\[avilib\] V:' vcd3/info | \ > perl -e ' $line=<STDIN> ; $line =~ /V: (.+?) fps/ ; > print $1' ` > FPS_1=`echo "scale=1 ; $FPS/1"| bc -l` > FRAMES=`grep '\[avilib\] V:' vcd3/info | \ > perl -e ' $line=<STDIN> ; $line =~ /frames=(\d+)/ ; > print $1' ` > SEGUNDOS_TOTAL=`echo "scale=0 ; ($FRAMES / $FPS)"| bc -l` > HORAS=`echo "scale=0 ; ($SEGUNDOS_TOTAL / 3600)"| bc -l` > MINUTOS=`echo "scale=0 ; (($SEGUNDOS_TOTAL - 3600 * > $HORAS)/60)"| bc -l` > SEGUNDOS=`echo "scale=0 ; ($SEGUNDOS_TOTAL % 60)"| bc -l` > > VIDEO_RATE=`echo "scale=0 ;(($CDSIZE * 1024 - \ > ($AUDIORATE/8*$SEGUNDOS_TOTAL))*8 / $SEGUNDOS_TOTAL)"| > bc -l` > if [ $VIDEO_RATE -ge 8000 ]; then VIDEO_RATE=8000; fi > #VIDEO_RATE=1150 > > rm vcd3/info > > echo "*************** FILE INFO ***************" > echo "Frame Size: ${WIDTH}x${HEIGHT} - FPS: $FPS" > echo "Length: $FRAMES - Seconds: $SEGUNDOS_TOTAL" > echo "$HORAS hours, $MINUTOS minutes, $SEGUNDOS seconds" > rm vcd3/info > > echo "*************** FILE INFO ***************" > echo "Frame Size: ${WIDTH}x${HEIGHT} - FPS: $FPS" > echo "Length: $FRAMES - Seconds: $SEGUNDOS_TOTAL" > echo "$HORAS hours, $MINUTOS minutes, $SEGUNDOS seconds" > > echo > echo "VIDEO-RATE: $VIDEO_RATE" > CBR="`echo "$VIDEO_RATE * 1000" | bc -l`" > > cat > auto.prof << END > #VCD profile to try and fit space allocated > fixed_vbv_delay = 1 > vbv_buffer_size = 230 > cbr = 1 > cbr_bitrate = $CBR.0 > quant_value = 2 > qscale_type = 0 > vbr_mux = 0 > video_buf_size = 230 > use_comp_bitrate = 1 > max_bitrate = $CBR.0 > END > echo "Video Output: ${WIDTH_OUT}x${HEIGHT_OUT}" > > # Ahora calculamos los valores pa los bordes. > > ANCHO_1_1_OUT="`echo "($HEIGHT_OUT * 4/3)"| bc -l`" > ALTO_OUT="`echo "$HEIGHT / ($WIDTH / $ANCHO_1_1_OUT)" | bc -l`" > # Redondeamos > ALTO_OUT="`echo "scale=0 ; $ALTO_OUT/1"| bc -l`" > # Nos aseguramos de que sea par > ALTO_OUT="`echo "scale=0 ; $ALTO_OUT+$ALTO_OUT%2" | bc -l`" > > BORDE="`echo "scale=0 ; ($HEIGHT_OUT-$ALTO_OUT)/2"| bc -l`" > echo "alto sin bordes: $ALTO_OUT, con borde: $BORDE" > echo > INASPECT="$WIDTH_OUT:$ALTO_OUT" > > B=`basename "$i"` > C="$B ($HORAS:$MINUTOS:$SEGUNDOS minutes playtime) $CHOICE > $VIDEO_RATE" > BB=vcd3/$$.temp.avi > echo "^[]0;$C - Stage 1 (Resizing)^G" > > mencoder -aspect "$INASPECT" -noskiplimit -ovc lavc \ > -lavcopts > vcodec=mpeg2video:vhq:vrc_minrate=${VIDEO_RATE}:vbitrate=${VIDEO_RATE}:vrc_maxrate=${VIDEO_RATE}:aspect=4/3 > \ > -oac copy \ > -ofps 23.976 \ > -vop expand=$WIDTH_OUT:$HEIGHT_OUT,scale -zoom > -xy $WIDTH_OUT \ > -o "$BB" "$i" > # -oac pcm -srate 44100 \ > echo "^[]0;$C - Stage 2 (Converting into streams)^G" > ffmpeg -i "$BB" \ > -b "${VIDEO_RATE}" \ > -r 23.976 \ > -aspect "4:3" \ > -vcodec copy \ > -acodec mp2 \ > -ab ${AUDIORATE} \ > -ar 44100 \ > -ac 2 \ > -f vcd \ > "vcd3/${B}.mpg" > #echo "^[]0;$C - Stage 3 (Multiplexing into VOB)^G" > > #mplex -f 8 -V -o "vcd3/${B}.vob" "vcd3/${B}.m1v" "vcd3/${B}.mp2" > # echo "^[]0;$C - Stage 4 (Adding Movie Title to DVD)^G" > #dvdauthor\ > #-o vcd3/mydvd \ > #-a "en" \ > #-v "ntsc+4:3+${WIDTH_OUT}x${HEIGHT_OUT}" \ > #-t \ > #"vcd3/${B}.vob" > rm "$BB" > rm "vcd3/${B}.m1v" > rm "vcd3/${B}.m2v" > rm "vcd3/${B}.mp2" > rm "vcd3/${B}.mp3" > rm "vcd3/${B}.vob" > #cdrdao blank --device 0,0,0 --force --driver generic-mmc-raw > #cd vcd3 || exit 0 > #vcdxgen -t svcd --nopbc *vcd > #vcdxbuild -p --gui *xml > #cdrdao write --device 0,0,0 --force --driver generic-mmc-raw *.cue > #cd .. > echo "^[]0;Done Converting $C^G" > echo > exit 0 > > > > > > Randy Pratt wrote: > > >I've been transcoding some avi files to mpeg2 format to make SVCDs so > >that I can watch them on the tv. > > > >I've not had any problems with the transcoding, but when i use > >vcdimager to create the bin/cue files I'll get a warning like: > > > > ++ WARN: bad packet at packet #314266 (stream byte offset > > 730354184) -- remaining 796144300 bytes of stream will be ignored > > > >I did not create the original avi file but I'm guessing that this > >problem was created when two avi files were joined together to make > >one file. > > > >I'd appreciate any pointers on how to repair the breakage or any > >method that could be used as a work-around. I've looked thru > >man transcode and tons of google but so far found nothing to > >address this. > > > >Any ideas appreciated! > > > >Thanks, > > > >Randy > > > > > >_______________________________________________ > >freebsd-multimedia@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-multimedia > >To unsubscribe, send any mail to "freebsd-multimedia-unsubscribe@freebsd.org" > > > > > > --
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031121231828.34008c49.rpratt1950>