Lines 461-473
Link Here
|
461 |
if [ ! -z "`echo "$file" | grep -E "mms:|http:|rtsp:"`" ]; then file_type="Streaming Media" |
461 |
if [ ! -z "`echo "$file" | grep -E "mms:|http:|rtsp:"`" ]; then file_type="Streaming Media" |
462 |
elif [ ! -z "`file -Lk "$file" | grep "ASCII"`" ] && [ ! -z "`grep -E "mms:|http:|rtsp:" "$file"`" ]; then file_type="Streaming Media" |
462 |
elif [ ! -z "`file -Lk "$file" | grep "ASCII"`" ] && [ ! -z "`grep -E "mms:|http:|rtsp:" "$file"`" ]; then file_type="Streaming Media" |
463 |
elif [ ! -z "`file -Lk "$file" | grep AVI`" ]; then |
463 |
elif [ ! -z "`file -Lk "$file" | grep AVI`" ]; then |
464 |
if [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -demuxer 35 -vo dummy -identify "$file" 2>&1 | grep ID_VIDEO_FORMAT | grep dvsd`" ]; then |
464 |
if [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -demuxer 35 -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_VIDEO_FORMAT | grep dvsd`" ]; then |
465 |
if [ "`tcprobe -i "$file" 2>&1 | grep "DV AVI Type 1"`" ]; then |
465 |
if [ "`tcprobe -i "$file" 2>&1 | grep "DV AVI Type 1"`" ]; then |
466 |
file_type="DV Avi Video (Type 1)" |
466 |
file_type="DV Avi Video (Type 1)" |
467 |
else |
467 |
else |
468 |
file_type="DV Avi Video (Type 2)" |
468 |
file_type="DV Avi Video (Type 2)" |
469 |
fi |
469 |
fi |
470 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo dummy -identify "$file" 2>&1 | grep "\[VP62\]"`" ]; then file_type="VP62 AVI Video" |
470 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep "\[VP62\]"`" ]; then file_type="VP62 AVI Video" |
471 |
else |
471 |
else |
472 |
file_type="AVI" |
472 |
file_type="AVI" |
473 |
fi |
473 |
fi |
Lines 485-493
Link Here
|
485 |
else |
485 |
else |
486 |
file_type="MPEG" |
486 |
file_type="MPEG" |
487 |
fi |
487 |
fi |
488 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo dummy -identify "$file" 2>&1 | grep "TS file format"`" ]; then file_type="MPEG Transport Stream" |
488 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep "TS file format"`" ]; then file_type="MPEG Transport Stream" |
489 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo dummy -identify "$file" 2>&1 | grep MPEG-PS`" ]; then file_type="(S)VCD video" |
489 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep MPEG-PS`" ]; then file_type="(S)VCD video" |
490 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo dummy -identify "$file" 2>&1 | grep "Nullsoft Stream"`" ]; then file_type="Nullsoft Streaming Video" |
490 |
elif [ "$BITRATE_CALC" != "yes" ] && [ ! -z "`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep "Nullsoft Stream"`" ]; then file_type="Nullsoft Streaming Video" |
491 |
elif [ ! -z "`head "$file" 2> /dev/null | grep MythTVVideo`" ]; then file_type="MythTV Nuppelvideo" |
491 |
elif [ ! -z "`head "$file" 2> /dev/null | grep MythTVVideo`" ]; then file_type="MythTV Nuppelvideo" |
492 |
else |
492 |
else |
493 |
file_type="Unknown :(" |
493 |
file_type="Unknown :(" |
Lines 540-555
Link Here
|
540 |
else |
540 |
else |
541 |
if [ "$BITRATE_CALC" != "yes" ]; then |
541 |
if [ "$BITRATE_CALC" != "yes" ]; then |
542 |
eval ffmpeg -i \""$file"\" 2>&1 | grep Stream | grep Audio: > "$WORKDIR"/ffmpeg_audio_streams.dat |
542 |
eval ffmpeg -i \""$file"\" 2>&1 | grep Stream | grep Audio: > "$WORKDIR"/ffmpeg_audio_streams.dat |
543 |
mplayer -vo dummy -identify "$file" 2>&1 | grep ID_AUDIO_ID | cut -d= -f2 | sort | uniq > "$WORKDIR"/mplayer_audio_streams.dat |
543 |
mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_AUDIO_ID | cut -d= -f2 | sort | uniq > "$WORKDIR"/mplayer_audio_streams.dat |
544 |
if [ "$file_type" = "AVI" ] || [ "$file_type" = "Apple QuickTime" ] || [ "$file_type" = "Microsoft ASF" ] || [ "$file_type" = "Matroska" ] || [ "$file_type" = "OGM video" ] || [ "$file_type" = "MP4/3GP/3G2 ISO Media" ] || [ "$file_type" = "Real Media" ]; then |
544 |
if [ "$file_type" = "AVI" ] || [ "$file_type" = "Apple QuickTime" ] || [ "$file_type" = "Microsoft ASF" ] || [ "$file_type" = "Matroska" ] || [ "$file_type" = "OGM video" ] || [ "$file_type" = "MP4/3GP/3G2 ISO Media" ] || [ "$file_type" = "Real Media" ]; then |
545 |
CODEC=`mplayer -vo dummy -identify "$file" 2>&1 | grep ID_VIDEO_FORMAT | cut -d= -f2` |
545 |
CODEC=`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_VIDEO_FORMAT | cut -d= -f2` |
546 |
[ "$file_type" = "MP4/3GP/3G2 ISO Media" ] && [ ! -z "`mplayer -vo null -ao null -msglevel all=4:decaudio=6 -frames 1 "$file" 2>&1 | grep " (AMR "`" ] && AMR="yes" |
546 |
[ "$file_type" = "MP4/3GP/3G2 ISO Media" ] && [ ! -z "`mplayer -vo null -ao null -msglevel all=4:decaudio=6 -frames 1 "$file" 2>&1 | grep " (AMR "`" ] && AMR="yes" |
547 |
fi |
547 |
fi |
548 |
SRC_FPS=`mplayer -vo dummy -identify "$file" 2>&1 | grep ID_VIDEO_FPS | cut -d= -f2` |
548 |
SRC_FPS=`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_VIDEO_FPS | cut -d= -f2` |
549 |
if [ "$file_type" = "Microsoft ASF" ]; then |
549 |
if [ "$file_type" = "Microsoft ASF" ]; then |
550 |
WMV_ARGS="-mc 0" |
550 |
WMV_ARGS="-mc 0" |
551 |
SRC_FPS=`ffmpeg -i "$file" 2>&1 | grep "\->" | cut -d">" -f2 | awk '{print $1}' | head -n1` |
551 |
SRC_FPS=`ffmpeg -i "$file" 2>&1 | grep "\->" | cut -d">" -f2 | awk '{print $1}' | head -n1` |
552 |
[ -z "$SRC_FPS" ] && SRC_FPS=`mplayer -vo dummy -identify "$file" 2>&1 | grep ID_VIDEO_FPS | cut -d= -f2` |
552 |
[ -z "$SRC_FPS" ] && SRC_FPS=`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_VIDEO_FPS | cut -d= -f2` |
553 |
fi |
553 |
fi |
554 |
## Only use the visible part of the movie frame to calculate aspect, this handles letterboxed sources ## |
554 |
## Only use the visible part of the movie frame to calculate aspect, this handles letterboxed sources ## |
555 |
CROP_SRC_RES=`eval mplayer -vo null -ao null -benchmark -vf cropdetect -frames 200 \""$file"\" 2>&1 | sed 's/-//g' | grep -e "[[:digit:]]*\:[[:digit:]]*\:[[:digit:]]" | perl -ne '($a) = /([0-9]{3,4}:[0-9]{3,4})/; print "$a\n"' | sed '/^$/d' | tail -n1` |
555 |
CROP_SRC_RES=`eval mplayer -vo null -ao null -benchmark -vf cropdetect -frames 200 \""$file"\" 2>&1 | sed 's/-//g' | grep -e "[[:digit:]]*\:[[:digit:]]*\:[[:digit:]]" | perl -ne '($a) = /([0-9]{3,4}:[0-9]{3,4})/; print "$a\n"' | sed '/^$/d' | tail -n1` |
Lines 920-926
Link Here
|
920 |
DUR_SECS=`ffmpeg -i "$file" 2>&1 | grep Duration | cut -d: -f4 | cut -d. -f1 | sed 's/ //' | sed -e 's/^0//'` |
920 |
DUR_SECS=`ffmpeg -i "$file" 2>&1 | grep Duration | cut -d: -f4 | cut -d. -f1 | sed 's/ //' | sed -e 's/^0//'` |
921 |
DURATION=`perl -le "print ( (($DUR_HOURS*60)*60) + ($DUR_MINS*60) + $DUR_SECS )"` |
921 |
DURATION=`perl -le "print ( (($DUR_HOURS*60)*60) + ($DUR_MINS*60) + $DUR_SECS )"` |
922 |
else |
922 |
else |
923 |
[ "$file_type" != "MythTV Nuppelvideo" ] && DURATION=`mplayer -vo dummy -identify "$file" 2>&1 | grep ID_LENGTH | cut -d= -f2` |
923 |
[ "$file_type" != "MythTV Nuppelvideo" ] && DURATION=`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_LENGTH | cut -d= -f2` |
924 |
fi |
924 |
fi |
925 |
SRC_AVG_BITRATE=`ffmpeg -i "$file" 2>&1 | grep Duration: | awk -F"bitrate:" '{print $2}' | cut -d" " -f2` |
925 |
SRC_AVG_BITRATE=`ffmpeg -i "$file" 2>&1 | grep Duration: | awk -F"bitrate:" '{print $2}' | cut -d" " -f2` |
926 |
[ -z "$SRC_AVG_BITRATE" ] || [ "$SRC_AVG_BITRATE" = "N/A" ] && SRC_AVG_BITRATE=250 |
926 |
[ -z "$SRC_AVG_BITRATE" ] || [ "$SRC_AVG_BITRATE" = "N/A" ] && SRC_AVG_BITRATE=250 |
Lines 1275-1281
Link Here
|
1275 |
TOOLKIT=([0]=mkvextract) |
1275 |
TOOLKIT=([0]=mkvextract) |
1276 |
TOOLURL=([0]=http://www.bunkus.org/videotools/mkvtoolnix/) |
1276 |
TOOLURL=([0]=http://www.bunkus.org/videotools/mkvtoolnix/) |
1277 |
check_tools |
1277 |
check_tools |
1278 |
mplayer -vo dummy -ao null "$file" 2> /dev/null | grep "Track ID" | sed 's/^.*\[mkv\]//g' > "$WORKDIR"/matroska.dat |
1278 |
mplayer -vo null -ao null -frames 0 "$file" 2> /dev/null | grep "Track ID" | sed 's/^.*\[mkv\]//g' > "$WORKDIR"/matroska.dat |
1279 |
echo |
1279 |
echo |
1280 |
echo "Number of VIDEO tracks detected: `cat "$WORKDIR"/matroska.dat | grep video | wc -l`" |
1280 |
echo "Number of VIDEO tracks detected: `cat "$WORKDIR"/matroska.dat | grep video | wc -l`" |
1281 |
echo "Number of AUDIO tracks detected: `cat "$WORKDIR"/matroska.dat | grep audio | wc -l`" |
1281 |
echo "Number of AUDIO tracks detected: `cat "$WORKDIR"/matroska.dat | grep audio | wc -l`" |
Lines 1415-1421
Link Here
|
1415 |
TOOLKIT=([0]=replex) |
1415 |
TOOLKIT=([0]=replex) |
1416 |
TOOLURL=([0]=http://www.metzlerbros.org/dvb/) |
1416 |
TOOLURL=([0]=http://www.metzlerbros.org/dvb/) |
1417 |
check_tools |
1417 |
check_tools |
1418 |
mplayer -vo dummy -identify "$file" 2>&1 | sort | uniq | grep ID_VIDEO_ID > "$WORKDIR"/mts.dat |
1418 |
mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | sort | uniq | grep ID_VIDEO_ID > "$WORKDIR"/mts.dat |
1419 |
# Probe & extract relevant video streams # |
1419 |
# Probe & extract relevant video streams # |
1420 |
VID_NUM=`grep ID_VIDEO_ID "$WORKDIR"/mts.dat | wc -l` |
1420 |
VID_NUM=`grep ID_VIDEO_ID "$WORKDIR"/mts.dat | wc -l` |
1421 |
real_file="$file" |
1421 |
real_file="$file" |
Lines 1435-1441
Link Here
|
1435 |
else |
1435 |
else |
1436 |
# Match first video stream to the correct audio stream for replexing # |
1436 |
# Match first video stream to the correct audio stream for replexing # |
1437 |
MTS_VID_ID=`cat "$WORKDIR"/mts.dat | head -n1 | cut -d= -f2` |
1437 |
MTS_VID_ID=`cat "$WORKDIR"/mts.dat | head -n1 | cut -d= -f2` |
1438 |
AUD_ID=`mplayer -vo dummy -vid $MTS_VID_ID "$file" 2>&1 | grep "VIDEO MPEG2" | cut -d= -f3 | cut -d\) -f1` # Replex cannot handle H264/MPA |
1438 |
AUD_ID=`mplayer -vo null -ao null -frames 0 -vid $MTS_VID_ID "$file" 2>&1 | grep "VIDEO MPEG2" | cut -d= -f3 | cut -d\) -f1` # Replex cannot handle H264/MPA |
1439 |
VID_HEX=`replex --scan -o "$file" 2>&1 | grep "("$MTS_VID_ID")" | cut -d: -f2 | awk '{print $1}'` |
1439 |
VID_HEX=`replex --scan -o "$file" 2>&1 | grep "("$MTS_VID_ID")" | cut -d: -f2 | awk '{print $1}'` |
1440 |
AUD_HEX=`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | cut -d: -f2 | awk '{print $1}'` |
1440 |
AUD_HEX=`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | cut -d: -f2 | awk '{print $1}'` |
1441 |
if [ ! -z "`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | grep ac3pid`" ]; then # Handle 5:1 extraction |
1441 |
if [ ! -z "`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | grep ac3pid`" ]; then # Handle 5:1 extraction |
Lines 1511-1517
Link Here
|
1511 |
for i in `cat "$WORKDIR"/mts.dat`; do |
1511 |
for i in `cat "$WORKDIR"/mts.dat`; do |
1512 |
file="$real_file" |
1512 |
file="$real_file" |
1513 |
MTS_VID_ID=`echo $i | cut -d= -f2` |
1513 |
MTS_VID_ID=`echo $i | cut -d= -f2` |
1514 |
AUD_ID=`mplayer -vo dummy -vid $MTS_VID_ID "$file" 2>&1 | grep "VIDEO MPEG2" | cut -d= -f3 | cut -d\) -f1` # Replex cannot handle H264/MPA |
1514 |
AUD_ID=`mplayer -vo null -ao null -frames 0 -vid $MTS_VID_ID "$file" 2>&1 | grep "VIDEO MPEG2" | cut -d= -f3 | cut -d\) -f1` # Replex cannot handle H264/MPA |
1515 |
VID_HEX=`replex --scan -o "$file" 2>&1 | grep "("$MTS_VID_ID")" | cut -d: -f2 | awk '{print $1}'` |
1515 |
VID_HEX=`replex --scan -o "$file" 2>&1 | grep "("$MTS_VID_ID")" | cut -d: -f2 | awk '{print $1}'` |
1516 |
AUD_HEX=`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | cut -d: -f2 | awk '{print $1}'` |
1516 |
AUD_HEX=`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | cut -d: -f2 | awk '{print $1}'` |
1517 |
if [ ! -z "`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | grep ac3pid`" ]; then # Handle 5:1 extraction |
1517 |
if [ ! -z "`replex --scan -o "$file" 2>&1 | grep "("$AUD_ID")" | grep ac3pid`" ]; then # Handle 5:1 extraction |
Lines 1721-1728
Link Here
|
1721 |
} |
1721 |
} |
1722 |
|
1722 |
|
1723 |
multi_format () { # Processes filetypes with multiple Video and/or Audio tracks |
1723 |
multi_format () { # Processes filetypes with multiple Video and/or Audio tracks |
1724 |
mplayer -vo dummy -identify "$file" 2>&1 | grep ID_VIDEO_ID | cut -d= -f2 > "$WORKDIR"/mplayer_video_streams.dat |
1724 |
mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_VIDEO_ID | cut -d= -f2 > "$WORKDIR"/mplayer_video_streams.dat |
1725 |
mplayer -vo dummy -identify "$file" 2>&1 | grep ID_AUDIO_ID | cut -d= -f2 > "$WORKDIR"/mplayer_audio_streams.dat |
1725 |
mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_AUDIO_ID | cut -d= -f2 > "$WORKDIR"/mplayer_audio_streams.dat |
1726 |
echo |
1726 |
echo |
1727 |
echo " Number of VIDEO tracks detected: `cat "$WORKDIR"/mplayer_video_streams.dat | wc -l`" |
1727 |
echo " Number of VIDEO tracks detected: `cat "$WORKDIR"/mplayer_video_streams.dat | wc -l`" |
1728 |
echo " Number of AUDIO tracks detected: `cat "$WORKDIR"/mplayer_audio_streams.dat | wc -l`" |
1728 |
echo " Number of AUDIO tracks detected: `cat "$WORKDIR"/mplayer_audio_streams.dat | wc -l`" |
Lines 1733-1739
Link Here
|
1733 |
file_type="multi-format" |
1733 |
file_type="multi-format" |
1734 |
pref_name="$name" |
1734 |
pref_name="$name" |
1735 |
for VID_ID in `cat "$WORKDIR"/mplayer_video_streams.dat`; do |
1735 |
for VID_ID in `cat "$WORKDIR"/mplayer_video_streams.dat`; do |
1736 |
SRC_FPS=`mplayer -vo dummy -identify -vid $VID_ID "$file" 2>&1 | grep VIDEO_FPS | cut -d= -f2` |
1736 |
SRC_FPS=`mplayer -vo null -ao null -frames 0 -identify -vid $VID_ID "$file" 2>&1 | grep VIDEO_FPS | cut -d= -f2` |
1737 |
eval mplayer -vfm ffmpeg -vo jpeg:outdir=\""$WORKDIR"/\" -ao null -vid $VID_ID -frames 1 \""$file"\" &> /dev/null |
1737 |
eval mplayer -vfm ffmpeg -vo jpeg:outdir=\""$WORKDIR"/\" -ao null -vid $VID_ID -frames 1 \""$file"\" &> /dev/null |
1738 |
SRC_WIDTH=`eval identify \""$WORKDIR"/00000001.jpg\" | awk -F" JPEG " '{print $2}' | awk '{print $1}' | cut -dx -f1` |
1738 |
SRC_WIDTH=`eval identify \""$WORKDIR"/00000001.jpg\" | awk -F" JPEG " '{print $2}' | awk '{print $1}' | cut -dx -f1` |
1739 |
SRC_HEIGHT=`eval identify \""$WORKDIR"/00000001.jpg\" | awk -F" JPEG " '{print $2}' | awk '{print $1}' | cut -dx -f2` |
1739 |
SRC_HEIGHT=`eval identify \""$WORKDIR"/00000001.jpg\" | awk -F" JPEG " '{print $2}' | awk '{print $1}' | cut -dx -f2` |
Lines 1941-1947
Link Here
|
1941 |
killall -9 mplayer &> /dev/null |
1941 |
killall -9 mplayer &> /dev/null |
1942 |
killall -9 transcode &> /dev/null # Kill off stray transcode/mplayer processes & fifos |
1942 |
killall -9 transcode &> /dev/null # Kill off stray transcode/mplayer processes & fifos |
1943 |
rm stream.yuv 2> /dev/null |
1943 |
rm stream.yuv 2> /dev/null |
1944 |
[ -z "`mplayer -vo dummy -identify "$file" 2>&1 | grep ID_AUDIO_ID`" ] || [ "$HAS_SURROUND" = yes ] || [ "$file_type" = "multi-format" ] || [ "$file_type" = "DVD Vob" ] && SKIP_AUDIOENC="yes" |
1944 |
[ -z "`mplayer -vo null -ao null -frames 0 -identify "$file" 2>&1 | grep ID_AUDIO_ID`" ] || [ "$HAS_SURROUND" = yes ] || [ "$file_type" = "multi-format" ] || [ "$file_type" = "DVD Vob" ] && SKIP_AUDIOENC="yes" |
1945 |
if [ "$file_type" = "multi-format" ]; then |
1945 |
if [ "$file_type" = "multi-format" ]; then |
1946 |
VID_ID_ARGS="=\"-vid $VID_ID -mc 0\"" |
1946 |
VID_ID_ARGS="=\"-vid $VID_ID -mc 0\"" |
1947 |
else |
1947 |
else |