Recherche avancée

Médias (0)

Mot : - Tags -/masques

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (44)

  • Pas question de marché, de cloud etc...

    10 avril 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (7700)

  • avcodec/videotoolbox : Fix undefined symbol with minimal configuration

    4 janvier 2022, par Limin Wang
    avcodec/videotoolbox : Fix undefined symbol with minimal configuration
    

    Please reproduced with the following minimal configure command :
    ./configure —enable-shared —disable-all —enable-avcodec —enable-decoder=h264 —enable-hwaccel=h264_videotoolbox

    You'll get below error :

    Undefined symbols for architecture x86_64 :
    "_ff_videotoolbox_vpcc_extradata_create", referenced from :
    _videotoolbox_start in videotoolbox.o
    ld : symbol(s) not found for architecture x86_64
    clang : error : linker command failed with exit code 1 (use -v to see invocation)

    Reported-by : Cameron Gutman <aicommander@gmail.com>
    Tested-by : Cameron Gutman <aicommander@gmail.com>
    Signed-off-by : Limin Wang <lance.lmwang@gmail.com>

    • [DH] libavcodec/videotoolbox.c
  • Sinon stun within ffmpeg error event listener

    22 juin 2022, par Pedro Elias
        const {writeStream, upload} = S3Service.uploadStream({ Bucket: process.env.BUCKET, Key: s3Path});&#xA;&#xA;    ffmpeg(stream)&#xA;        .outputOptions(&#x27;-copyts&#x27;)&#xA;        .audioCodec("libopus")&#xA;        .toFormat("matroska")&#xA;        .on(&#x27;error&#x27;, (err, stdout, stderr) => {&#xA;            if (err) {&#xA;                console.log(err.message);&#xA;                upload.abort();&#xA;                return reject("Error FFMPEG");&#xA;            }&#xA;        })&#xA;        .on(&#x27;start&#x27;, (p) => console.log(p))&#xA;        .on(`end`, () => console.log("end ffmpeg"))&#xA;        .pipe(writeStream);&#xA;&#xA;    upload.promise()&#xA;        .then(() => resolve("Successful audio converted transfer"))&#xA;        .catch((err) => console.error(err));&#xA;

    &#xA;

    I have the code above and I'm writing a unit test for it as follow :

    &#xA;

    let uploadStreamStub = {&#xA;    writeStream: sandbox.stub().returnsThis(),&#xA;    upload: {&#xA;        promise: sandbox.stub(),&#xA;        abort: sandbox.stub()&#xA;     }&#xA;}&#xA;&#xA;sandbox.stub(s3Service, "uploadStream").returns(uploadStreamStub);&#xA;

    &#xA;

    I'd like to stub upload.abort() :

    &#xA;

    let onStub = sandbox.stub(ffmpeg.prototype, "on").returnsThis();&#xA;onStub.withArgs("error").yieldsAsync(new Error("test"));&#xA;sandbox.assert.calledOnce(uploadStreamStub.upload.abort);&#xA;

    &#xA;

    However, the stub is not working :&#xA;AssertError : expected stub to be called once but was called 0 times

    &#xA;

    When I remove the "yieldsAsync" line and try to stub the promise it works :

    &#xA;

    // onStub.withArgs("error").yieldsAsync(new Error("test"));&#xA;sandbox.assert.calledOnce(uploadStreamStub.upload.promise);&#xA;

    &#xA;

    So the stub only doesn't work on('error'...

    &#xA;

    What I'm doing wrong ?

    &#xA;

    How can I stub and check if abort has been called ?

    &#xA;

  • node js ffmpeg hls stream sound is repeating and overlays to each other

    1er avril 2022, par Marty

    I'm trying to stream video and audio with rtmp and I'm stack with problem that I hear sound which overlays to each other and always repeating. But my target is to not repeating and overlay audio to each other. Parsing hls performs with hls.js

    &#xA;

    This is my ffmpeg config which creates 4 streaming files which includes in master file index.m3u8

    &#xA;

    let argv = [&#x27;-y&#x27;, &#x27;-i&#x27;, inPath];&#xA;  Array.prototype.push.apply(argv, [&#xA;    &#x27;-filter_complex&#x27;, &#x27;[0:v]split=4[v1][v2][v3][v4];[v1]copy[v1out];[v2]scale=w=1280:h=720[v2out];[v3]scale=w=800:h=480[v3out];[v4]scale=w=640:h=360[v4out]&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;[v1out]&#x27;, &#x27;-c:v:0&#x27;, &#x27;libx264&#x27;, &#x27;-x264-params&#x27;, &#x27;nal-hrd=cbr:force-cfr=1&#x27;, &#x27;-b:v:0&#x27;, &#x27;5M&#x27;, &#x27;-maxrate:v:0&#x27;, &#x27;5M&#x27;, &#x27;-bufsize:v:0&#x27;, &#x27;5M&#x27;, &#x27;-preset&#x27;, &#x27;veryfast&#x27;, &#x27;-g&#x27;, &#x27;48&#x27;, &#x27;-sc_threshold&#x27;, &#x27;0&#x27;, &#x27;-keyint_min&#x27;, &#x27;48&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;[v2out]&#x27;, &#x27;-c:v:1&#x27;, &#x27;libx264&#x27;, &#x27;-x264-params&#x27;, &#x27;nal-hrd=cbr:force-cfr=1&#x27;, &#x27;-b:v:1&#x27;, &#x27;3M&#x27;, &#x27;-maxrate:v:1&#x27;, &#x27;3M&#x27;, &#x27;-bufsize:v:1&#x27;, &#x27;3M&#x27;, &#x27;-preset&#x27;, &#x27;veryfast&#x27;, &#x27;-g&#x27;, &#x27;48&#x27;, &#x27;-sc_threshold&#x27;, &#x27;0&#x27;, &#x27;-keyint_min&#x27;, &#x27;48&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;[v3out]&#x27;, &#x27;-c:v:2&#x27;, &#x27;libx264&#x27;, &#x27;-x264-params&#x27;, &#x27;nal-hrd=cbr:force-cfr=1&#x27;, &#x27;-b:v:2&#x27;, &#x27;1M&#x27;, &#x27;-maxrate:v:2&#x27;, &#x27;1M&#x27;, &#x27;-bufsize:v:2&#x27;, &#x27;1M&#x27;, &#x27;-preset&#x27;, &#x27;veryfast&#x27;, &#x27;-g&#x27;, &#x27;48&#x27;, &#x27;-sc_threshold&#x27;, &#x27;0&#x27;, &#x27;-keyint_min&#x27;, &#x27;48&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;[v4out]&#x27;, &#x27;-c:v:3&#x27;, &#x27;libx264&#x27;, &#x27;-x264-params&#x27;, &#x27;nal-hrd=cbr:force-cfr=1&#x27;, &#x27;-b:v:3&#x27;, &#x27;600k&#x27;, &#x27;-maxrate:v:3&#x27;, &#x27;600k&#x27;, &#x27;-bufsize:v:3&#x27;, &#x27;600k&#x27;, &#x27;-preset&#x27;, &#x27;veryfast&#x27;, &#x27;-g&#x27;, &#x27;48&#x27;, &#x27;-sc_threshold&#x27;, &#x27;0&#x27;, &#x27;-keyint_min&#x27;, &#x27;48&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;a:0&#x27;, &#x27;-c:a:0&#x27;, &#x27;aac&#x27;, &#x27;-b:a:0&#x27;, &#x27;96k&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;a:0&#x27;, &#x27;-c:a:1&#x27;, &#x27;aac&#x27;, &#x27;-b:a:1&#x27;, &#x27;96k&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;a:0&#x27;, &#x27;-c:a:2&#x27;, &#x27;aac&#x27;, &#x27;-b:a:2&#x27;, &#x27;96k&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;,&#xA;    &#x27;-map&#x27;, &#x27;a:0&#x27;, &#x27;-c:a:3&#x27;, &#x27;aac&#x27;, &#x27;-b:a:3&#x27;, &#x27;96k&#x27;, &#x27;-ac&#x27;, &#x27;2&#x27;,&#xA;    &#x27;-f&#x27;, &#x27;hls&#x27;, &#x27;-hls_time&#x27;, &#x27;2&#x27;, &#x27;-hls_flags&#x27;, &#x27;independent_segments&#x27;, &#x27;-hls_list_size&#x27;, &#x27;2&#x27;, &#x27;-hls_segment_type&#x27;, &#x27;mpegts&#x27;, &#x27;-hls_segment_filename&#x27;, `${ouPath}/%v_data%02d.ts`, &#x27;-master_pl_name&#x27;, `index.m3u8`,&#xA;    &#x27;-var_stream_map&#x27;, &#x27;v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3&#x27;, `${ouPath}/stream_%v.m3u8`&#xA;  ]);&#xA;  this.ffmpeg_exec = spawn(this.conf.ffmpeg, argv)&#xA;

    &#xA;

    index.m3u8 :

    &#xA;

    #EXTM3U&#xA;#EXT-X-VERSION:6&#xA;#EXT-X-STREAM- &#xA;INF:BANDWIDTH=5605600,RESOLUTION=1920x1080,CODECS="avc1.64002a,mp4a.40.2"&#xA;stream_0.m3u8&#xA;&#xA;#EXT-X-STREAM- &#xA;INF:BANDWIDTH=3405600,RESOLUTION=1280x720,CODECS="avc1.640020,mp4a.40.2"&#xA;stream_1.m3u8&#xA;&#xA;#EXT-X-STREAM-INF:BANDWIDTH=1205600,RESOLUTION=800x480,CODECS="avc1.64001f,mp4a.40.2"&#xA;stream_2.m3u8&#xA;&#xA;#EXT-X-STREAM-INF:BANDWIDTH=765600,RESOLUTION=640x360,CODECS="avc1.64001f,mp4a.40.2"&#xA;stream_3.m3u8&#xA;

    &#xA;

    Below is streaming files from index.m3u8 with dynamic chunks

    &#xA;

    stream_0.m3u8 :

    &#xA;

    #EXTM3U&#xA;#EXT-X-VERSION:6&#xA;#EXT-X-TARGETDURATION:2&#xA;#EXT-X-MEDIA-SEQUENCE:0&#xA;#EXT-X-INDEPENDENT-SEGMENTS&#xA;#EXTINF:2.400000,&#xA;0_data00.ts&#xA;

    &#xA;

    stream_1.m3u8 :

    &#xA;

    #EXTM3U&#xA;#EXT-X-VERSION:6&#xA;#EXT-X-TARGETDURATION:2&#xA;#EXT-X-MEDIA-SEQUENCE:87&#xA;#EXT-X-INDEPENDENT-SEGMENTS&#xA;#EXTINF:1.600000,&#xA;1_data87.ts&#xA;#EXTINF:2.400000,&#xA;1_data88.ts&#xA;

    &#xA;

    stream_2.m3u8 :

    &#xA;

    #EXTM3U&#xA;#EXT-X-VERSION:6&#xA;#EXT-X-TARGETDURATION:2&#xA;#EXT-X-MEDIA-SEQUENCE:110&#xA;#EXT-X-INDEPENDENT-SEGMENTS&#xA;#EXTINF:2.400000,&#xA;2_data110.ts&#xA;#EXTINF:1.600000,&#xA;2_data111.ts&#xA;

    &#xA;

    stream_3.m3u8 :

    &#xA;

    #EXTM3U&#xA;#EXT-X-VERSION:6&#xA;#EXT-X-TARGETDURATION:2&#xA;#EXT-X-MEDIA-SEQUENCE:128&#xA;#EXT-X-INDEPENDENT-SEGMENTS&#xA;#EXTINF:2.400000,&#xA;3_data128.ts&#xA;#EXTINF:1.600000,&#xA;3_data129.ts&#xA;

    &#xA;