mplayer Audio ID

  • Ich bin gerade auf der Suche warum man mit dem mplayer die verschiedenen
    Tonspuren eines avi Files nicht abspielen kann.


    Hier mal was ich bisher rausgefunden habe:


    mit dem mplayer ist das erstmal kein Problem.
    So werden die verschiedenen Tonspuren abgespielt:
    mplayer -aid 1 test.avi
    mplayer -aid 2 test.avi


    Der mplayer erkennt auch die Tonspuren im Video:

    Code
    OutputFromMPLAYER: "ID_VIDEO_ID=0 ID_AUDIO_ID=1 ID_AUDIO_ID=2 ID_CLIP_INFO_NAME0=Software ID_CLIP_INFO_VALUE0=VirtualDubMod 1.5.4.1 (build 2178/release) ID_CLIP_INFO_N=1 ID_FILENAME=/mnt/Videoserver/1/Video/_test.avi ID_DEMUXER=avi ID_VIDEO_FORMAT=DX50 ID_VIDEO_BITRATE=956200 ID_VIDEO_WIDTH=576 ID_VIDEO_HEIGHT=416 ID_VIDEO_FPS=25.000 ID_VIDEO_ASPECT=0.0000 ID_AUDIO_CODEC=mp3 ID_AUDIO_FORMAT=85 ID_AUDIO_BITRATE=96000 ID_AUDIO_RATE=32000 ID_AUDIO_NCH=2 ID_LENGTH=143.04 ID_VIDEO_CODEC=ffodivx"


    Wenn man jedoch im C't VDR eine AID wählt wird dies nicht an den
    mplayer weitergegeben.


    Im Slave-Modus kann man die Tonspur nur bei MPEG und Matroska
    umschalten:


    Code
    switch_audio (MPEG and Matroska only)
    Cycle through the available audio tracks.


    es muss also wohl das mplayer plugin angepasst werden, damit die
    gewählte AID an die mplayer.sh und schliesslich an den mplayer
    weitergegeben wird. Oder kann man in der mplayer.sh irgendwie die
    gewählte AID auslesen?


    EDIT:
    ok an die mplayer.sh wird die AID wohl auch noch übergeben:
    snprintf(cmd,sizeof(cmd),"%s \"%s\" %s%s",MPlayerCmd,fname,MPlayerSetup.SlaveMode?"SLAVE":"",aid);


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

    Einmal editiert, zuletzt von ggsm ()

  • ok, ich habs fast hinbekommen. Das einzigste Problem was es noch gibt,
    man muss nun immer AID 1 wählen wenn ein Video nur eine Audio Spur
    hat. Jemand mit mehr Shell Skript Erfahrung wie ich bekommt das aber
    sicher schnell hin.


    Im Anhang die neue mplayer.sh


    neu ist:

    Code
    Zeile 490: declare AID="-aid $4"


    editiert wurde:

    Code
    Zeile 550: CMDLINE="$MPLAYER -vo $AID $VO $AOUT $FDSTR $CACHESTR $REMOTE $USERDEF"
    Zeile 552: CMDLINE="$MPLAYER -vo $VO $AID $AOUT -vop $VOP:$NEW_FPS,expand=$NEW_X:$REAL_Y:-1:-1:1,scale=$NEW_X:${NEW_Y}${DETC} $SPEED $FDSTR $CACHESTR $REMOTE $SUBTITLES $USERDEF $FORCEIDX"


    kurze Erklärung was noch anders werden muss:
    besser wäre ein:


    Code
    declare AID=""
    if ! ($4 == "") then
        AID="-aid $4"
    fi


    also wenn nichts in $4 steht, dann soll auch nichts in AID stehen. Damit
    wäre das Problem mit der nicht angegebenen AID behoben. Nur klappt
    wohl so eine if Abfrage nicht.


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

    Einmal editiert, zuletzt von ggsm ()

  • war doch einfacher wie gedacht ;)


    Code
    if test -n "$4"; then; AID="-aid $4"; fi


    nun geht alles :)


    - abspielen eines Videos ohne Angabe von AID wie bisher
    - abspielen eines Videos mit Auswahl der Tonspur

  • Hallo ggsm,


    ich möchte deinen enthusiasmus nicht abbrechen, aber die mplayer.sh hatte ich bereits nach rücksprache mit TomG bereits am Mittwoch angepasst, so dass sowohl die im OSD Menu des MPlayer-Plugins (Blaue Taste) eingestellte AID übergeben wird, als auch das playlist dateien verarbeitet werden. :D


    Nachtrag:
    Ich sehe auch gerade in deiner Zeile das Du grundsätzlich davon ausgehst, das $4 der Wert für die Tonspur ist, das setzt aber voraus, das immer §2 /SLAVE) übergeben wird, wenn slave wegfällt, ist der Wert für die AID in $3, den gleichen gedankenfehler bin ich beim ersten Versuch auch aufgelaufen ;)


    siehe hier :VDRdevel-1.3.39 + Plugins + Addons



    Grüsse


    Michael


    -- Debian Kernel 2.6.21.3 -- ctVDR/eTobi -- vdr 1.6.x --
    -- Coolermaster -- ASRock K7S41GX -- AMD K7 1.8GHz -- 512MB RAM --
    -- Nexus 2MB DVB-C (F12623) -- 3.5" CI & Alphacrypt 3.09 -- Nova DVB-T -- AVBoard 1.4 -- Denon AVR 1906 --

    Einmal editiert, zuletzt von Mysterix ()

  • LOL ok. Wenigstens was gelernt ;)


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

  • Modifizierte mplayer.sh funzt. Find es nur schade, dass man bei AVIs den Ton nicht während der Wiedergabe ändern kann. Da es im oben genannten Thread drei versionen der mplayer.sh gibt, hier noch mal der Link zur letzten und auch richtigen mplayer.sh


    LINK


    Endlich "Friends" auf Englisch :welle



    Gruß


    tec

    2 Mal editiert, zuletzt von tecfreak ()

  • ja das ist schade aber immerhin haben wir nun schonmal einen mega
    Fortschritt. Ich hab bisher immer mit VirtualDubMod die Tonspuren vertauscht
    damit immer die wo ich hören wollte genommen wurde. Ist natürlich
    *etwas* stressig auf Dauer ;)


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

  • Wie und wo mach ich das und klappt das auch mit AVI files und nicht nur mit MPEG?



    Gruß


    tec

  • http://www.mplayerhq.hu/DOCS/tech/slave.txt
    ^da stehen alle commands.
    die zuordnung kannst du in der plugin-einstllung machen.


    um ehrlich zu sein, für avis weiss ich das nicht. auf jeden fall klappt das bei ogm und mkv containern. mehr dual-language-videos habe ich nicht (wer macht denn schon avi mit 2 audio spuren tztztztzz :P)


    aber ob das bei avi auch klappt, hast du ja schnell ausprobiert.


    edit: dazu mein eigener post auf der ML: http://www.linuxtv.org/pipermail/vdr/2005-July/003478.html

  • also "switch_audio" "switch_audio 1" "switch_audio 2" "switch_audio 0"
    hab ich getestet, scheint aber nicht zu funktionieren.


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

    Einmal editiert, zuletzt von ggsm ()

  • There are 0 search results. Aber ich schick dir mal einen Link per PN bei dem
    das Online umschalten bei mir nicht geht.


    Gruß googleGSM


    HW: Asus P5B, Intel Core2 Duo E6400 2x2.13GHz, 4096MB Ram, 1.4TB HDD, LG GSA-4165, LaScara LC13, WinTV Nexus-S, WinTV Nova-HD-S2, PCI CI + T-Rex Dragon CAM, Nvidia Geforce 7600 GS
    SW: Ubuntu 8.04, X-VDR

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!