Recherche avancée

Médias (3)

Mot : - Tags -/plugin

Autres articles (78)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

Sur d’autres sites (9255)

  • aacenc : remove support for AAC Main profile

    8 février, par Lynne
    aacenc : remove support for AAC Main profile
    

    The Main profile of AAC is... terrible.
    It enables the use of delta coding across coefficients of two frames
    to try to increase compression, and it enabled one more pole for TNS
    filters.

    What the AAC authors failed to take into account were basic
    mathematics, as MDCT leakage (e.g. the spread of each frequency when
    represented in a discrete spectrum) is significant in most audio codecs.
    This leads to huge variations between each frame, basically rendering
    prediction completely pointless.

    In fact, enabling AAC-Main prediction does not, in general, even recoup
    the metadata losses from signalling the profile and prediction properties
    in the first place. So you lose efficiency by using AAC Main.

    The rumor is that it was put in the AAC spec for patent reasons, though
    patent-wise, it has about as much use as a patent for a bicycle designed
    for use by snakes.

    The only other thing AAC Main changes is it permits 3-pole TNS filters.
    When AAC's bands are absolutely tiny, except for very high frequency bands,
    where you're likely to use PNS instead.

    Just get rid of it.

    • [DH] doc/encoders.texi
    • [DH] libavcodec/Makefile
    • [DH] libavcodec/aaccoder.c
    • [DH] libavcodec/aacenc.c
    • [DH] libavcodec/aacenc.h
    • [DH] libavcodec/aacenc_pred.c
    • [DH] libavcodec/aacenc_pred.h
    • [DH] libavcodec/aacenc_tns.c
    • [DH] libavcodec/aacenctab.h
    • [DH] tests/fate/aac.mak
  • avutil/libm : correct isnan, isinf compat hacks

    15 novembre 2015, par Ganesh Ajjanagadde
    avutil/libm : correct isnan, isinf compat hacks
    

    isnan and isinf are actually macros as per the standard. In particular,
    the existing implementation has incorrect signature. Furthermore, this
    results in undefined behavior for e.g double values outside float range
    as per the standard.

    This patch corrects the undefined behavior for all usage within FFmpeg.

    Note that long double is not handled as it is not used in FFmpeg.
    Furthermore, even if at some point long double gets used, it is likely
    not needed to modify the macro in practice for usage in FFmpeg. See
    below for analysis.

    Getting long double to work strictly per the spec is significantly harder
    since a long double may be an IEEE 128 bit quad (very rare), 80 bit
    extended precision value (on GCC/Clang), or simply double (on recent Microsoft).
    On the other hand, any potential future usage of long double is likely
    for precision (when a platform offers extra precision) and not for range, since
    the range anyway varies and is not as portable as IEEE 754 single/double
    precision. In such cases, the implicit cast to a double is well defined
    and isinf and isnan should work as intended.

    Reviewed-by : Michael Niedermayer <michael@niedermayer.cc>
    Signed-off-by : Ganesh Ajjanagadde <gajjanagadde@gmail.com>

    • [DH] libavutil/libm.h
  • Python : How to decode a mp3 chunk into PCM samples ?

    30 mars 2021, par Bendzko

    I'm trying to catch chunks of an mp3 webstream and decoding them into PCM samples for signal processing. I tried to catch the audio via requests and io.BytesIO to save the data as .wav file.

    &#xA;&#xA;

    I have to convert the mp3 data to wav data, but I don't know how. (My goal is not to record a .wav file, i am just doing this to test the algorithm.)

    &#xA;&#xA;

    I found the pymedia lib, but it is very old (last commit in 2006), using python 2.7 and for me not installable.

    &#xA;&#xA;

    Maybe it is possible with ffmpeg-python, but I have just seen examples using files as input and output.

    &#xA;&#xA;

    Here's my code :

    &#xA;&#xA;

    import requests&#xA;import io&#xA;import soundfile as sf&#xA;import struct&#xA;import wave&#xA;import numpy as np&#xA;&#xA;&#xA;def main():&#xA;    stream_url = r&#x27;http://dg-wdr-http-dus-dtag-cdn.cast.addradio.de/wdr/1live/diggi/mp3/128/stream.mp3&#x27;&#xA;    r = requests.get(stream_url, stream=True)&#xA;    sample_array = []&#xA;    try:&#xA;        for block in r.iter_content(1024):&#xA;            data, samplerate = sf.read(io.BytesIO(block), format="RAW", channels=2, samplerate=44100, subtype=&#x27;FLOAT&#x27;,&#xA;                                       dtype=&#x27;float32&#x27;)&#xA;            sample_array = np.append(sample_array, data)&#xA;&#xA;    except KeyboardInterrupt:&#xA;        print("...saving")&#xA;        obj = wave.open(&#x27;sounds/stream1.wav&#x27;, &#x27;w&#x27;)&#xA;        obj.setnchannels(1)  # mono&#xA;        obj.setsampwidth(2)  # bytes&#xA;        obj.setframerate(44100)&#xA;&#xA;        data_max = np.nanmax(abs(sample_array))&#xA;&#xA;        # fill WAV with samples from sample_array&#xA;        for sample in sample_array:&#xA;            if (np.isnan(sample) or np.isnan(32760 * sample / data_max)) is True:&#xA;                continue&#xA;            try:&#xA;                value = int(32760 * sample / data_max)  # normalization INT16&#xA;            except ValueError:&#xA;                value = 1&#xA;            finally:&#xA;                data = struct.pack(&#x27;code>

    &#xA;&#xA;

    Do you have an idea how to handle this problem ?

    &#xA;