Recherche avancée

Médias (91)

Autres articles (63)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

Sur d’autres sites (8546)

  • ffmpeg dash Segment offset

    18 mars 2019, par inkubux

    I’m trying to integrate live-transcoding like "plex" or "emby" with my application.

    I am able to serve dash content over to shaka-player or dash.js but only in ’live-mode’. But I want to enable seeking through the player.

    I looked at plex and to enable this they create their own mpd file with duration so the player will have a full seekbar.

    However when seeking the player will ask for a segment number eg : 449. I need to stop ffmpeg and restart with an offset (-ss &lt;<segment>>)</segment>, but ffmpeg will just restart a transcode session from segment 0 with an initial segment.

    What I want is to tell ffmpeg to start at a seekpoint but only output from segment number and now-on.

    When playing with hls and mpegts, I can tell ffmpeg to output at a certain segment : with the option -segment_start_number but this is not available for dash. And plex use their own transcoder based of ffmpeg with the option -skip_to_segment

    I tried to ’hack’ around by keeping a manual offset on my web-server, even if I serve the "supposed" right segment after the seek point dash.js and shaka-player can’t recover the stream.. VLC on the other habd is able to (probably more tolerent) to errors in segments.

    Is the supposed right segment after a seek in dash (contains the initial segment) or only the segment.

    Is ffmpeg able to start segmenting dash as a supposed segment (for seek and resume)

    The same technique works in hls with forced key frames and a custom m3u8 (with all the "predicted" segments) but calculating the right segment length and the right bandwidth is much harder and hackish and dash is more tolerant to variation.

    I would really like to be able to seek through my live transcoding video.

    For reference here is a custom mpd file I serve to enable "seeking" :

    <mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" suggestedpresentationdelay="PT1S" mediapresentationduration="PT49M2.920S" maxsegmentduration="PT2S" minbuffertime="PT10S">
       <period start="PT0S" duration="PT49M2.920S">
           <adaptationset segmentalignment="true">
               <segmenttemplate timescale="1" duration="1" initialization="$RepresentationID$/initial.mp4" media="$RepresentationID$/$Number$.m4s" startnumber="1">
               </segmenttemplate>
               <representation mimetype="video/mp4" codecs="avc1.640029" bandwidth="3766000" width="1920" height="1080">
               </representation>
           </adaptationset>
           <adaptationset segmentalignment="true">
               <segmenttemplate timescale="1" duration="1" initialization="$RepresentationID$/initial.mp4" media="$RepresentationID$/$Number$.m4s" startnumber="1">
               </segmenttemplate>
               <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="188000" audiosamplingrate="48000">
                   <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="6"></audiochannelconfiguration>
               </representation>
           </adaptationset>
       </period>
    </mpd>

    And here is the ffmpeg command to pull it off :

    ffmpeg -ss 0 -i movie.mkv -y -acodec aac -vcodec libx264 -f dash -min_seg_duration 1000000 -individual_header_trailer 0 -pix_fmt yuv420p -vf scale=trunc(min(max(iw\,ih*dar)\,1920)/2)*2:trunc(ow/dar/2)*2 -bsf:v h264_mp4toannexb -profile:v high -level 4.1 -map_chapters -1 -map_metadata -1 -preset veryfast -movflags frag_keyframe+empty_moov -use_template 1 -use_timeline 0 -remove_at_exit 1 -crf 23 -bufsize 7532k -maxrate 3766k -start_at_zero -threads 0 -force_key_frames expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+1)) -init_seg_name $RepresentationID$/0_initial.mp4 -media_seg_name $RepresentationID$/0_$Number$.m4s /transcoding_temp/Z1GVWEc/index.mpd

    The media_seg_name is where I prepend the custom seek_point let’s say I want to seek to segment 1233 the template would be :

    -media_seg_name $RepresentationID$/1233_$Number$.m4s

    and the segments would be 1233_1 1233_2 1233_* So I can serve the right segment after seek. but the player does not recover and still downloading subsequent segments. I guess since a new initial segment is generated and I somehow miss headers for continuous playback after seek but I’m probably wrong.

    Thanks for your help

  • mpeg-dash live streaming can't fetch chunks

    27 juin 2020, par user1902653

    I'm trying to create a live stream of mpeg-dash with ffmpeg.

    &#xA;

    I'm streaming with python the frames to the ffmpeg process.

    &#xA;

    This is the current command I'm using for creating the mpeg-dash manifest and m4s files :

    &#xA;

    ffmpeg -re -f rawvideo -pix_fmt bgr24 -video_size 640x360 -i - -vcodec libx264 -preset ultrafast -tune zerolatency -f dash -window_size 10 -use_template 1 -use_timeline 0 -live 1 /srv/http/dash/stream.mpd&#xA;

    &#xA;

    I'm using nginx as a server for now and I've created a simple index.html using shaka player, but the problem is I couldn't get it to load and play more then the first chunk. (checked with dev-tools in chrome in the network tab)

    &#xA;

    This is how I'm using shaka player right now :

    &#xA;

    &#xD;&#xA;
    &#xD;&#xA;
    &#xA;    &#xA;        <code class="echappe-js">&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/shaka-player/2.1.4/shaka-player.compiled.js&quot;&gt;&lt;/script&gt;&#xA;        &lt;script&gt;&amp;#xA;            var manifestUri = &amp;#x27;stream.mpd&amp;#x27;;&amp;#xA;            function initApp() {&amp;#xA;                shaka.polyfill.installAll();&amp;#xA;                if (shaka.Player.isBrowserSupported()) {&amp;#xA;                    initPlayer();&amp;#xA;                } else {&amp;#xA;                    console.error(&amp;#x27;Browser not supported!&amp;#x27;);&amp;#xA;                }&amp;#xA;            }&amp;#xA;            function initPlayer() {&amp;#xA;                var video = document.getElementById(&amp;#x27;video&amp;#x27;);&amp;#xA;                var player = new shaka.Player(video);&amp;#xA;                window.player = player;&amp;#xA;                player.addEventListener(&amp;#x27;error&amp;#x27;, onErrorEvent);&amp;#xA;                player.load(manifestUri).then(function() {&amp;#xA;                    console.log(&amp;#x27;The video has now been loaded!&amp;#x27;);&amp;#xA;                }).catch(onError);&amp;#xA;            }&amp;#xA;            function onErrorEvent(event) {&amp;#xA;                onError(event.detail);&amp;#xA;            }&amp;#xA;            function onError(error) {&amp;#xA;                console.error(&amp;#x27;Error code&amp;#x27;, error.code, &amp;#x27;object&amp;#x27;, error);&amp;#xA;            }&amp;#xA;            document.addEventListener(&amp;#x27;DOMContentLoaded&amp;#x27;, initApp);&amp;#xA;        &lt;/script&gt;&#xA;    &#xA;    &#xA;        &#xA;    &#xA;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;

    For some reason the stream is only playing the first chunk and never requesting for the next chunk. How can I make it load the next chunks ?

    &#xA;

    When tried using dash.js I couldn't get it to load even the first chunk.

    &#xA;

    Thanks in advance.

    &#xA;

  • Revision 17037 : report de r17030

    28 janvier 2011, par cedric -

    en SQLite sql_delete ne respectait pas encore le changement d’API introduit par r14495 : renvoyer le nombre de lignes supprimees ou false en cas d’echec. En renvoyant toujours true en cas de succes, meme si aucune ligne n’etait supprimee, la fonction trompait la gestion de la file d’attente de (...)