faac (mencoder/faac) Samplingrate&Bitrate verknüpft,..

  • Habe per Konsole folgendes ausprobiert:

    Code
    mencoder -mc 0 -noskip "test.avi" -ovc copy -oac faac -faacopts br=64:mpeg=4:object=2 -af volume=5 -channels 2 -srate 48000 -of rawaudio -o "test.aac"

    und dann nur die srate (Samplingrate) geändert und jeweils andere Dateigrößen erhalten:
    48kHz -> 128kBit/s+
    32kHz -> 96kBit/s+
    24kHz -> 76kBit/s+
    22kHz -> 72kBit/s+
    22.5kHz -> 72kBit/s+
    20kHz -> 66kBit/s+
    19kHz -> 64kBit/s+
    16kHz -> 62kBit/s+
    12kHz -> 64kBit/s+
    8kHz -> 56kBit/s+

    Weiß jemand dazu genaueres?
    Wie und Warum hängt da die Datenrate mit der Samplingrate zusammen?
    Kann&Darf man das Umgehen?

    Cu Selur

    Ps.: wurde 2006 auch bei http://www.itdp.de/mplayer-users/2006-03/msg00189.html schon mal angesprochen,..

  • Hatte ich noch Garnicht bemerkt, muß ich erst noch genauer Testen.
    Ich kann nur vermuten das es so korrekt ist.
    Je nach Bitrate kann man ja den Parameter -srate (automatisch) ändern.

  • Zitat

    Je nach Bitrate kann man ja den Parameter -srate (automatisch) ändern.


    Wie den automatisch? (lässt man den Parameter weg wird die InputSamplerate genommen soweit mencoder sie erkennt)

    Suche vor allem irgendwelche Dokumentation die den Zusammenhang zwischen Sampelrate und Bitrate erläutert.

  • Ich gehe davon aus das du das in deinem Programm einbauen willst, dann baue doch einfach eine abfrage ein
    die die Samplingrate passend zur Bitrate einstellt.

  • Ach so, meinteste das. :)
    Das wäre an sich eine Möglichkeit, jedoch wäre es dafür schön nicht nur die irgendwelche Testwerte von meinem zwei Versuchen zu haben sondern über die Abhängigkeit eine genauere Dokumentation zu haben. Leider finde ich per Google nichts dazu. :/

    Cu Selur

  • Hmm, das Samplingrate und Bitrate in direktem Zusammenhang stehen ist soweit verständlich. Höhere Samplingrate -> mehr Audioinformationen -> mehr benötigte Bitrate. Aber warum er die Bitrate "festschreibt", kann ich auch nicht verstehen. So wie ich das auf der Mailingliste verstanden habe, scheint das nur vorzukommen, wenn man aus dem Video heraus das re-encoding vornimmt. Nicht aber, wenn man das Audio demuxed. Ist das bei dir ebenfalls so? Wenn ja, würde ich eher auf eine Bug in Mencoder schließen. Vllt. ließe sich das Audio demuxen und per Pipe neu an FAAC weiterreichen. Ist zwar umständlicher, aber vllt. klappt es so.

    Bzgl. pipen: Kennst du BePipe? (enthalten in BeHappy) Damit lassen sich per Pipe AviSynth-Skripte an CLI-Programme übergeben.

    PS: Ich muss gestehen, das ich FAAC (weil er qualitativ leider nicht so gut ist wie NeroAacEnc) noch nie benutzt. :redface:

  • BePipe kenne ich, da ich aber das ganze möglichst gleich unter Linux und Windows machen will fällt es flach. ;)

    Das mit dem RAW Audio als Input und konvertieren geht mit mencoder gar nicht, der kann Audio nur konvertieren, wenn er in einem Container zusammen mit einer Videospur steckt. :) (Wurde auch schon öfters in der Mailingliste angesprochen, aber die Mencoder Leute meinen dann nur, dass es halt so wäre und man ja andere Tools nehmen könnte. :[)

    Cu Selur

  • Das mit dem RAW Audio als Input und konvertieren geht mit mencoder gar nicht, der kann Audio nur konvertieren, wenn er in einem Container zusammen mit einer Videospur steckt. :) (Wurde auch schon öfters in der Mailingliste angesprochen, aber die Mencoder Leute meinen dann nur, dass es halt so wäre und man ja andere Tools nehmen könnte. :[)


    Argh, wie **** ist das denn... :motz:
    Gibt es vllt. einen Hack, der diese FAAC-Beschränkung aufgeben kann? Dann könnte man sich zur Not einen so angepasstes Build selbst kompilieren. Oder ist das ein "größeres" Problem?

    BePipe kenne ich, da ich aber das ganze möglichst gleich unter Linux und Windows machen will fällt es flach. ;)


    Das einzige Tool, das ich noch kenne, dass unter Linux und Windows verfügbar ist, wäre ffmpeg. Allerdings bräuchte man dann auch Builds, die faac mit eingebaut haben.

    Ansonsten wäre meine einzige Idee: mencoder raw-audiostream | faac encoding | mencoder muxen (oder bspw. gleich in mp4box, wenn es MP4 werden soll). Keine Ahnung ob es klappt, aber Versuch wäre es wert. Allerdings müsstest du dann wieder ein zusätzliches Programm/Libary nehmen...

  • Zitat

    Gibt es vllt. einen Hack, der diese FAAC-Beschränkung aufgeben kann?

    Noch dazu nix gefunden,...
    ffmpeg nutze ich auch, ffmpeg kann aber im Gegensatz zu mencoder nur bescheidenst down-/upmixen (heißt es verwirft einfach Channel oder hat leere Channel) und bei ffmpeg kann man zwar RAW streams direkt umwandeln, jedoch tritt beim aac encoding das gleiche Problem mit der Samplerate auf.

    Wäre ja alles halb so wild wenn ich irgendwo ne Dokumentation finden würde in der steht was für eine Samplerate für welche Bitrate nötig ist, dann könnte man das vorher Einschränken. Aktuell ist es halt so, dass man Samplerate und Bitrate einstellt und dann hofft. (lässt man die Samplerte weg wird ein Defaultwert genommen)
    Bevor ich faac separat nutze, nutz ich dann eher NeroAacEnc, ist zwar nicht OpenSource und darf man dann nicht selber anbieten, aber das ist wenigstens ordentlicher. ;) (gibt es da eigentlich auch so einen Zusammenhang oder kann man wenn man will auch 48kHz Material mit 36kBit/s encoden?)

    Cu Selur

    Ps.: muxen brauch ich nicht, mir reicht ein .aac stream, gemuxed wird mit mp4box oder mkvmerge.;)

  • (gibt es da eigentlich auch so einen Zusammenhang oder kann man wenn man will auch 48kHz Material mit 36kBit/s encoden?)


    Ich hab es mal fix mit BeLight getestet. AC3@5.1 44kbps@48kHz -> AAC@5.1 32kbps@48kHz mit NeroAacEnc geht. Ich wüsste auch keine Grund, der dagegen sprechen würden. Komischerweise kommt aber trotz "-cbr 32" ein VBR heraus, mit ~40kbps (lt. MediaInfo). Versteh allerdings nicht warum (abgesehen davon, das jeder Kanal nur ~11kbps bekommen hat. Denn so hört es sich auch an. :zunge: ) Persönlich stört mich an dem Punkt VBR weniger, da ich NeroAacEnc eh nur mit "-q" nutze...

  • Das aac immer eher abr anstatt cbr ist, stört mich nicht, aber da so extreme Abhängigkeiten zu Samplerate bestehen wie oben genannt schon. ;)
    Naja, werde ich wohl warten müssen, bis man NeroAAC über stdIn mt ffmpeg füttern kann (soll wohl ab der näcshten Version gehen).

    Cu Selur

    Ps.: Falls Du oder sonst jamand jedoch über irgendwelche Dokumentation bzgl. der Samplerate<>Bitrate Abhänigkeit stolpern sollte, immer her damit. :)

Jetzt mitmachen!

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