Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (50)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

Sur d’autres sites (7478)

  • Avoiding ffmpeg audio drift for live dash output

    22 mai 2021, par mdale

    Have people experienced playback drift with ffmpeg based dash segment generation ? For example :

    


    ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i AVSyncTest.mp4 \
-af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" \
-c:v:0 libx264 \
-pix_fmt:0 yuv420p \
-preset:0 medium \
-a53cc:0 1 \
-nal-hrd:0 cbr \
-x264opts:0 scenecut=-1:rc_lookahead=0 -b:v:0 5000k -bufsize:0 500k \
-force_key_frames:0 "expr:gte(t,n_forced*2)" \
-bf:0 8 \
-r 30 \
-c:a:0 aac  -ar 48000 \
-b:a:1 96k  \
-f tee -map 0:v \
-map 0:a "[f=dash:media_seg_name='chunk-stream_\$RepresentationID\$-\$Number%05d\$.mp4':init_seg_name='init-stream_\$RepresentationID\$.mp4':seg_duration=2:utc_timing_url=https\\\://time.akamai.com\\?iso:remove_at_exit=0:use_timeline=0:http_user_agent=ffmpeg_encoder.0:streaming=1:index_correction=1:timeout=1:dash_segment_type=mp4:method=PUT:http_persistent=1:adaptation_sets='id=0,streams=v\:0 id=1,streams=a' ]http://localhost:5000/out.mpd "


    


    After a bit of playback it starts audio starts to drift. Analysis of the moof (with tools like mp4box) shows 1024 sample size with 93 Moofs with Moof->traf->default_sample_duration=1024 at 48000 sample rate giving segment duration of 1.984 seconds with every 3rd segment or so with 92 Moofs with duration of 1.962 … While each segment starts aligned ( if you reset playback you get alignment) it drifts against continuous playback.

    


    Other examples like Akamai’s public stream. show 94 Moofs or 2.005 duration with every 3rd segment or so at the 1.984 duration. (what one would want)

    


    Akamai’s (presumably ffmepg based) stream is averaging out to the 2s target where the above ffmpeg command is not …

    


  • dash.js : four channels audio streaming

    19 juillet 2016, par Carlos Chacon

    Does dash.js supports 4 channels in the audio stream ?

    I’m using mp4 container : video : h254 and audio : AAC.

    For the case that the AAC audio stream is 2 channels it works fine, both video and audio play correctly. But 4 channels does NOT work.

    I’m using FFMPEG to create the files and WOWZA to setup the DASH streaming.

    For the case that the AAC audio stream is 4 channels I get the following error :

    Video can't be played because the file is corrupt.

    Command line to generate the 2-channels file :

    ffmpeg -i video_in.mp4 -i audio_in_4ch.wav -c:v copy -c:a aac -ac 2 output_2channels.mp4

    Command line to generate the 4-channels file :

    ffmpeg -i video_in.mp4 -i audio_in_4ch.wav -c:v copy -c:a aac -ac 4 output_4channels.mp4

    This is the fmmpeg -i information printed for each file :

    2 Channels output file details :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output_2channels.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.37.101
     Duration: 00:00:17.59, start: 0.000000, bitrate: 901 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1024x512 [SAR 1:1 DAR 2:1], 894 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    4 Channels output file details :

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output_4channels.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.37.101
     Duration: 00:00:17.59, start: 0.000000, bitrate: 1038 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1024x512 [SAR 1:1 DAR 2:1], 894 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 4.0, fltp, 265 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    4 Channels output file mdp file :

    <?xml version="1.0" encoding="UTF-8"?>
    <mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" publishtime="2016-07-19T05:56:28Z" mediapresentationduration="PT17.585S" minbuffertime="PT1.5S">
    <programinformation>
       
    </programinformation>
    <location>http://192.168.0.103:1935/vod/_definst_/mp4:output_4channels.mp4/manifest_w882219731.mpd</location>
    <period start="PT0.0S">
       <baseurl>http://192.168.0.103:1935/vod/_definst_/mp4:output_4channels.mp4/</baseurl>
       <adaptationset mimetype="video/mp4" width="1024" height="512" par="1024:512" framerate="30000/1001" segmentalignment="true" startwithsap="1" subsegmentalignment="true" subsegmentstartswithsap="1">
           <segmenttemplate presentationtimeoffset="0" timescale="90000" media="chunk_ctvideo_rid$RepresentationID$_cs$Time$_w882219731_mpd.m4s" initialization="chunk_ctvideo_rid$RepresentationID$_cinit_w882219731_mpd.m4s">
               <segmenttimeline>
                   <s t="0" d="1582650"></s>
               </segmenttimeline>
           </segmenttemplate>
           <representation codecs="avc1.42c01e" sar="1:1" bandwidth="894760"></representation>
       </adaptationset>
       <adaptationset mimetype="audio/mp4" lang="eng" segmentalignment="true" startwithsap="1" subsegmentalignment="true" subsegmentstartswithsap="1">
           <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
           <segmenttemplate presentationtimeoffset="0" timescale="48000" media="chunk_ctaudio_rid$RepresentationID$_cs$Time$_w882219731_mpd.m4s" initialization="chunk_ctaudio_rid$RepresentationID$_cinit_w882219731_mpd.m4s">
               <segmenttimeline>
                   <s t="0" d="844080"></s>
               </segmenttimeline>
           </segmenttemplate>
           <representation codecs="mp4a.40.2" audiosamplingrate="48000" bandwidth="265851">
           </representation>
       </adaptationset>
    </period>
    </mpd>

    HTML Player Code :

    <code class="echappe-js">&lt;script src=&quot;http://cdn.dashjs.org/latest/dash.all.min.js&quot;&gt;&lt;/script&gt;

  • MPEG DASH (MPD) to MP4 in Node.js ?

    28 janvier 2024, par Hello World

    I am trying to convert streams to .mp4 files. I have successfully converted an HLS to MP4 using fluent-ffmpeg package on version 2.1.2. I did so with with the following code :

    &#xA;

    var ffmpegCommand = ffmpeg();&#xA;            ffmpegCommand&#xA;            .input(HLS FILE HERE)&#xA;            .inputOptions(&#x27;-protocol_whitelist file,http,https,tcp,tls,crypto,data&#x27;)&#xA;            .on("error", (err, stdout, stderr) => {&#xA;                console.log(err)&#xA;                let error = new Error(err.message)&#xA;                error.code = err.code || &#x27;FILE_CONVERSION_M3U8_TO_MP3/UNKNOWN_ERROR&#x27;;&#xA;                error.status = err.status || 500;&#xA;&#xA;                console.log(&#x27;An error occurred: &#x27; &#x2B; err.message, err, stderr);&#xA;                reject(error)&#xA;            })&#xA;            .on("end", () => {&#xA;                console.log(temporaryFilePath2)&#xA;                resolve(temporaryFilePath2);&#xA;            })&#xA;            .on(&#x27;progress&#x27;, function(progress) {&#xA;                console.log(&#x27;progress: &#x27; &#x2B; (progress.percent || 0).toFixed(2) &#x2B; &#x27;%。&#x27;);&#xA;                progressGathering.push((progress.percent || 0).toFixed(2))&#xA;&#xA;                if(progressGathering.length == 10 &amp;&amp; progressGathering[9] == 0.00){&#xA;                    let error = new Error("File is a live stream.")&#xA;                    error.code = &#x27;FILE_CONVERSION_M3U8_TO_MP3/LIVESTREAM_SUPPORT&#x27;&#xA;                    error.status = 501&#xA;&#xA;                    ffmpegCommand.kill()&#xA;                    reject(error)&#xA;                }&#xA;            })&#xA;            .inputOptions(&#x27;-allowed_extensions ALL&#x27;)&#xA;            .outputOptions("-c copy")&#xA;            .output(temporaryFilePath2)&#xA;            .run();&#xA;&#xA;            setTimeout(() => {&#xA;                ffmpegCommand.kill();&#xA;                let error = new Error("The file selected was too large or the network was hanging. Conversion timeout.")&#xA;                error.code = &#x27;FILE_CONVERSION_M3U8_TO_MP3/TIMEOUT&#x27;&#xA;                error.status = 599;&#xA;                reject(error)&#xA;            }, 300000) // 5 minutes&#xA;

    &#xA;

    However, when I attempt something similar with a mpd file url in the input, I get several errors that are all the same :

    &#xA;

    ffmpeg exited with code 1: https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd: Invalid data found when processing input

    &#xA;

    Is this something fluent-ffmpeg can't handle ? If so, I would like to know another package that can accomplish this.

    &#xA;