[mplayer] versneld afgespeeld door alsa

Pagina: 1
Acties:
  • 149 views sinds 30-01-2008
  • Reageer

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Ik gebruik voor het afspelen van films altijd mplayer, maar sinds kort heb ik een heel vreemd probleem:
Als ik films afspeel met een geluids-track die ge-encodeerd is op minder dan 48 khz dan gaat het mis. Het geluid gaat dan a-la-smurf, en het beeld synct er keurig achteraan. Als ik voor sound output "null" gebruik treedt dit probleem niet op.

Even wat relevante informatie van Mplayer als het fout gaat:
code:
1
2
3
4
5
6
7
8
9
Checking audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 32000 hz, little endian signed int 
AF_pre: 32000Hz 2ch Signed 16-bit (Little-Endian)
alsa-init: requested format: 32000 Hz, 2 channels, Signed 16-bit (Little-Endian)
alsa-init: 1 soundcard found, using: hw:0,0
alsa9: 32000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [alsa9] 32000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
Starting playback...


En als het goed gaat:
code:
1
2
3
4
5
6
7
8
9
Checking audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 48000 hz, little endian signed int 
AF_pre: 48000Hz 2ch Signed 16-bit (Little-Endian)
alsa-init: requested format: 48000 Hz, 2 channels, Signed 16-bit (Little-Endian)
alsa-init: 1 soundcard found, using: hw:0,0
alsa9: 48000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [alsa9] 48000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 48000Hz/2ch/16bit -> 48000Hz/2ch/16bit...
Starting playback...


Iemand enig idee hoe ik dit oplos? Search op Google en GoT levert geen echt bruikbaar materiaal op, behalve wat ik al wist.

De fout lijkt te zitten in de "audio filter chain" die hij niet goed aanmaakt. Als ik het voor de lol probeer met SDL, wat ik eigenlijk niet wil, ziet de output er zo uit:

code:
1
2
3
4
5
6
7
Checking audio filter chain for 16000Hz/1ch/16bit -> 48000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 1 ch, 16000 hz, little endian signed int 
AF_pre: 16000Hz 1ch Signed 16-bit (Little-Endian)
SDL: Samplerate: 48000Hz Channels: Stereo Format Signed 16-bit (Little-Endian)
AO: [sdl] 48000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 16000Hz/1ch/16bit -> 48000Hz/2ch/16bit...
Starting playback...

dit is overigens een andere file, maar dat doet er niet zo veel toe.

[ Voor 22% gewijzigd door dawuss op 01-12-2003 22:19 ]

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
Je kan het oplossen op twee manieren volgens mij:

-af=resample=48000

of

-aop=list=resample:fout=48000


Wat precies het verschil is weet ik niet, maar technisch gezien zijn de manieren niet hetzelfde geloof ik (conversie in een andere software laag ofzo). Een permanente oplossing zodat-ie alle films voortaan correct afspeelt weet ik helaas niet.

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 08:37
Je zou desnoods ook OSS emulatie kunnen gebruiken, hier gebruik ik niets anders dan OSS emulatie en heb ik nooit problemen met dat soort dingen. Alsa wil nog wel es wat brak zijn in userland helaas.

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
ajvdvegt schreef op 01 december 2003 @ 22:57:
Je kan het oplossen op twee manieren volgens mij:

-af=resample=48000

of

-aop=list=resample:fout=48000


Wat precies het verschil is weet ik niet, maar technisch gezien zijn de manieren niet hetzelfde geloof ik (conversie in een andere software laag ofzo). Een permanente oplossing zodat-ie alle films voortaan correct afspeelt weet ik helaas niet.
Beide opties werken niet, MPlayer geeft aan dat de switches niet bestaan. Kan ook niets vinden wat er op lijkt.
Ze staan wel in de manpages, dus ik ga er wat mee aanprutsen :)

-aop list=resample:fout=48000
werkt wel, maar dan gaat het enorm vertraagd / schokkerig. Da's dus niet echt een goede oplossing :P (ligt niet aan CPU-load)

Om de een of andere manier gaat het perfect als ik resample naar 28000 :?
Checking audio filter chain for 16000Hz/1ch/16bit -> 16000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 1 ch, 16000 hz, little endian signed int
AF_pre: 16000Hz 1ch Signed 16-bit (Little-Endian)
[pl_resample] Up=128, Down=73, True fout=28054.794521
alsa-init: requested format: 28000 Hz, 2 channels, Signed 16-bit (Little-Endian)
alsa-init: 1 soundcard found, using: hw:0,0
alsa9: 28000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [plugin] 28000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 16000Hz/1ch/16bit -> 28000Hz/2ch/16bit...
Starting playback...
Bizar :?

Nou ja... Er zit gewoon helemaal geen logica in:
(ander filmpje)
Checking audio filter chain for 32000Hz/2ch/16bit -> 32000Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 32000 hz, little endian signed int
AF_pre: 32000Hz 2ch Signed 16-bit (Little-Endian)
[pl_resample] Up=128, Down=108, True fout=37925.925926
alsa-init: requested format: 38000 Hz, 2 channels, Signed 16-bit (Little-Endian)
alsa-init: 1 soundcard found, using: hw:0,0
alsa9: 38000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [plugin] 38000Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 32000Hz/2ch/16bit -> 38000Hz/2ch/16bit...
Starting playback...
Wat vreemd :? Deze klinkt goed bij een conversie van 32000->38000 en die andere bij 16000->28000 :?

[ Voor 71% gewijzigd door dawuss op 02-12-2003 23:51 ]

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • RRR
  • Registratie: Juni 2001
  • Laatst online: 19-08-2017

RRR

goR

Bedenk dat tot je een oplossing hebt gevonden, je geluid en beeld kan syncen met de + en - knop. ;)

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
RRR schreef op 03 december 2003 @ 00:51:
Bedenk dat tot je een oplossing hebt gevonden, je geluid en beeld kan syncen met de + en - knop. ;)
Beeld en geluid zijn juist perfect gesyncd, het gaat alleen allemaal veel te snel.

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©

Pagina: 1