Since Mplayer 0.9.8, there was a new option to select the audio pid during play back. There were a few patches floating around and the one attached to this email is what I am currently using against the current version of mplayer.sh. But, I am having a problem with this patch as it sometimes selects the secondary audio track (which is usually in a different language) and I am unable to get mplayer to use the primary apid. I have attached this patch as reference, but there is something still wrong with the audio selection. Does anyone have a working solution?
Best Regards,
--- mplayer.sh.orig 2004-11-29 18:23:23.000000000 -0800 +++ mplayer.sh 2004-11-29 18:27:00.000000000 -0800 @@ -178,7 +178,7 @@ if test -z "$VO"; then errorcfg VO; exit; else debugvar VO "$VO"; fi
if test -z "$AO"; then errorcfg AO; exit; else debugvar AO "$AO"; fi - AOUT="-ao $AO" + AOUT="-ao $AO $AID"
if test -z $CACHE; then echolog "*** Option CACHE not set in config file - calling mplayer without Cache!" @@ -481,7 +481,14 @@ declare ORIG_FPS NEW_FPS ORIG_ASPECT VIDEO_FORMAT AUDIO_CODEC declare CMDLINE AOUT REMOTE USERDEF SUFFIX declare FILE="$1" -declare SLAVE="$2" +while shift; do + if [ "$1" = "SLAVE" ]; then + declare SLAVE="$1" + elif [ "$1" = "AID" ]; then + declare AID="-aid $2" + shift + fi +done declare -a XResPAL[0] declare -a XResNTSC[0] declare FDSTR=""
Hi,
C.Y.M schrieb:
Since Mplayer 0.9.8, there was a new option to select the audio pid during play back. There were a few patches floating around and the one attached to this email is what I am currently using against the current version of mplayer.sh. But, I am having a problem with this patch as it sometimes selects the secondary audio track (which is usually in a different language) and I am unable to get mplayer to use the primary apid. I have attached this patch as reference, but there is something still wrong with the audio selection. Does anyone have a working solution?
Best Regards,
This effect is due to the different numbering scheme for audio tracks in mpeg and avi files (avi: 1-99, mpeg: 0-31, see man mplayer). Some time ago I had posted a patch for the mplayer.sh in the forum on vdrportal.de (http://www.vdrportal.de/board/thread.php?postid=177058#post177058). This patch increases the AID variable by 1 if an avi file is detected. And it also checks if the selected audio track is available in the file. If the selected audio track number is not present in the file, the -aid parameter is not used in the mplayer command line. This patch is for an older version of the mplayer.sh file, so I think it doesn't apply without some small changes.
Best Regards Lars
Lars Altenhain wrote:
Hi,
C.Y.M schrieb:
Since Mplayer 0.9.8, there was a new option to select the audio pid during play back. There were a few patches floating around and the one attached to this email is what I am currently using against the current version of mplayer.sh. But, I am having a problem with this patch as it sometimes selects the secondary audio track (which is usually in a different language) and I am unable to get mplayer to use the primary apid. I have attached this patch as reference, but there is something still wrong with the audio selection. Does anyone have a working solution?
Best Regards,
This effect is due to the different numbering scheme for audio tracks in mpeg and avi files (avi: 1-99, mpeg: 0-31, see man mplayer). Some time ago I had posted a patch for the mplayer.sh in the forum on vdrportal.de (http://www.vdrportal.de/board/thread.php?postid=177058#post177058). This patch increases the AID variable by 1 if an avi file is detected. And it also checks if the selected audio track is available in the file. If the selected audio track number is not present in the file, the -aid parameter is not used in the mplayer command line. This patch is for an older version of the mplayer.sh file, so I think it doesn't apply without some small changes.
Thank you. I have created a new patch for mplayer.sh-0.8.6 using the information kindly provided.
Best Regards,
--- mplayer.sh.orig 2005-03-01 16:18:07.000000000 -0800 +++ mplayer.sh 2005-03-01 16:16:23.000000000 -0800 @@ -265,7 +259,7 @@ # output: variable ORIG_X and ORIG_Y (global)
# variable definitions - local TEMP1 MPLAYER_RETURN + local TEMP1 VALID_AID AVI_FORMAT MPLAYER_RETURN ORIG_X=0; ORIG_Y=0
TEMP1=`$MPLAYER -identify -vo null -ao null -frames 0 "$FILE" 2>/dev/null | grep -i -e "^ID_"` @@ -297,6 +291,19 @@ AUDIO_CODEC=`echo "$TEMP1"|grep ID_AUDIO_CODEC|cut -d"=" -f2` debugmsg "parsed output for AUDIO_CODEC:" $AUDIO_CODEC
+ AVI_FORMAT=`file "$FILE" 2>/dev/null | grep -i -e "AVI"` + if test "$AVI_FORMAT" != ""; then + echolog "AVI format detected, increasing audiostreamid by 1" + AID=$(($AID+1)) + fi + + VALID_AID=`$MPLAYER -aid $AID -identify -vo null -ao null -frames 0 "$FILE" 2>/dev/null | grep -i -e "^ID_AUDIO"` + + if test "$VALID_AID" == ""; then + echolog "selected audiostream not in file, using default" + AID=-1; + fi + return; }
@@ -481,7 +488,8 @@ declare ORIG_FPS NEW_FPS ORIG_ASPECT VIDEO_FORMAT AUDIO_CODEC declare CMDLINE AOUT REMOTE USERDEF SUFFIX declare FILE="$1" -declare SLAVE="$2" +declare AID="$2" +declare SLAVE="$3" declare -a XResPAL[0] declare -a XResNTSC[0] declare FDSTR="" @@ -552,6 +562,9 @@ fi fi
+# small patch: +if test $AID -gt 0; then CMDLINE="$CMDLINE -aid $AID"; fi + debugvar CMDLINE "$CMDLINE" exec $CMDLINE "$FILE" exit
C.Y.M wrote:
This effect is due to the different numbering scheme for audio tracks in mpeg and avi files (avi: 1-99, mpeg: 0-31, see man mplayer). Some time ago I had posted a patch for the mplayer.sh in the forum on vdrportal.de (http://www.vdrportal.de/board/thread.php?postid=177058#post177058). This patch increases the AID variable by 1 if an avi file is detected. And it also checks if the selected audio track is available in the file. If the selected audio track number is not present in the file, the -aid parameter is not used in the mplayer command line. This patch is for an older version of the mplayer.sh file, so I think it doesn't apply without some small changes.
Thank you. I have created a new patch for mplayer.sh-0.8.6 using the information kindly provided.
OK, sorry for all the confusion, but this patch still does not work correctly. I have even hard-coded the AID variable to "0" in the mplayer.sh script and the secondary audio track is still selected. I am only testing this against native vdr files (not avi or mpegs). Perhaps there is something different about playing native vdr files?
Best Regards, C.Y.M.