Recherche avancée

Médias (91)

Autres articles (72)

  • 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 (...)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • 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 (...)

Sur d’autres sites (8297)

  • ffmpeg-mp4box-mpeg dash plays only few segments

    30 octobre 2015, par Idris

    Need help in debugging the segment dash files

    The input was an MP4 with these details. This was recorded from a video camera, the output from the camera was mkv and we converted into MP4 after editing the audio via adobe

    • Size : 7.51 GB Frame rate : 25 frames/ second
    • Data rate : 25326kbps
    • Total bitrate : 25525kbps

    Converted this to another mp4 with this command

    ffmpeg -i "input.mp4" -s 1280x720 -c:v libx264 -b:v 750k -bf 2 -g 75 -sc_threshold 0 -an video_1280x720_750k.mp4

    ffmpeg -i "input.mp4"  -c:a aac -strict experimental -b:a 96k -ar 32000 -vn audio_96k.mp4

    The output video has

    • fps : 25
    • Data rate : 761kbps
    • bitrate : 761kbps

    Then, created the segmented dash through MP4Box

    MP4Box -dash 10000 -frag 10000 -rap -segment-name video_0_1280000\segment_ video_1280x720_750k.mp4

    MP4Box -dash 3000 -frag 10000 -rap -segment-name audio_0_96000\segment_ audio_96k.mp4

    The MPD generated was validated online and its perfect

    UPDATE ! Included the MPD file

    <?xml version="1.0"?>

    <mpd xmlns="urn:mpeg:dash:schema:mpd:2011" minbuffertime="PT1.500S" type="static" mediapresentationduration="PT0H2M0.000S" maxsegmentduration="PT0H0M10.000S" profiles="urn:mpeg:dash:profile:full:2011">
    <programinformation moreinformationurl="http://gpac.sourceforge.net">
     
    </programinformation>

    <period duration="PT0H2M0.000S">
      <adaptationset segmentalignment="true" lang="eng">
        <representation mimetype="audio/mp4" codecs="mp4a.40.2" audiosamplingrate="32000" startwithsap="1" bandwidth="98434">
          <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
          <segmentlist timescale="32000" duration="319999">
            <initialization sourceurl="audio_0_96000/segment_init.mp4"></initialization>
            <segmenturl media="audio_0_96000/segment_1.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_2.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_3.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_4.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_5.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_6.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_7.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_8.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_9.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_10.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_11.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_12.m4s"></segmenturl>
            <segmenturl media="audio_0_96000/segment_13.m4s"></segmenturl>
          </segmentlist>
        </representation>
      </adaptationset>
     <adaptationset segmentalignment="true" maxwidth="1280" maxheight="720" maxframerate="25" par="16:9" lang="eng">
      <representation mimetype="video/mp4" codecs="avc3.64001f" width="1280" height="720" framerate="25" sar="1:1" startwithsap="1" bandwidth="764668">
       <segmentlist timescale="12800" duration="125866">
        <initialization sourceurl="video_0_1280000/segment_init.mp4"></initialization>
        <segmenturl media="video_0_1280000/segment_1.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_2.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_3.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_4.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_5.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_6.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_7.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_8.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_9.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_10.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_11.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_12.m4s"></segmenturl>
        <segmenturl media="video_0_1280000/segment_13.m4s"></segmenturl>
       </segmentlist>
      </representation>
     </adaptationset>

    </period>
    </mpd>

    Played the video through dashjs.. I believe it just plays the initial segment and errors out as MEDIA_ERR_DECODE..MEDIA_ERR_SRC_NOT_SUPPORTED.. or some message which says start not found..

    Through chrome debugging I see that atleast 4 segments are correctly loading.. I am not sure whats going on..

    Any help in debugging the issue is really appreciated. I really can’t understand if this is a problem with the file or ffmpeg or mp4box or chrome.

    Output from chrome debugging tool

    [dash.js 1.5.1] new MediaPlayer instance has been created
    dash.all.js:11 Playback initiated!
    dash.all.js:11 Parsing complete: ( xml2json: 5ms, objectiron: 10ms, total: 0.015s)
    dash.all.js:11 Manifest has been refreshed at Mon Oct 26 2015 10:19:22 GMT-0400 (Eastern Daylight Time)[1445869162092]  
    dash.all.js:11 SegmentTimeline detected using calculated Live Edge Time
    dash.all.js:11 MediaSource is open!
    dash.all.js:11 [object Event]
    dash.all.js:11 Duration successfully set to: 120
    dash.all.js:11 Added 0 inline events
    dash.all.js:11 video codec: video/mp4;codecs="avc3.64001f"
    dash.all.js:11 [video] stop
    dash.all.js:11 audio codec: audio/mp4;codecs="mp4a.40.2"
    dash.all.js:11 [audio] stop
    dash.all.js:11 No text data.
    dash.all.js:11 No fragmentedText data.
    dash.all.js:11 No muxed data.
    dash.all.js:11 [video] start
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [audio] start
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 [audio] SegmentList: 0 / 120
    dash.all.js:11 [video] Getting the request for time: 9.83328125
    dash.all.js:11 [video] Index for time 9.83328125 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [audio] Getting the request for time: 9.99996875
    dash.all.js:11 [audio] Index for time 9.99996875 is 0
    dash.all.js:11 [audio] SegmentList: 0 / 120
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 loaded audio:Media Segment:0 (200, 20ms, 6ms)
    dash.all.js:11 loaded video:Media Segment:0 (200, 153ms, 43ms)
    dash.all.js:11 loaded video:Initialization Segment:NaN (200, 0ms, 32ms)
    dash.all.js:11 [video] Initialization finished loading
    dash.all.js:11 loaded audio:Initialization Segment:NaN (200, 0ms, 34ms)
    dash.all.js:11 [audio] Initialization finished loading
    dash.all.js:11 [video] Getting the request for time: 19.6665625
    dash.all.js:11 [video] Index for time 19.6665625 is 1
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [audio] Getting the request for time: 19.9999375
    dash.all.js:11 [audio] Index for time 19.9999375 is 1
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [video] Stalling Buffer
    dash.all.js:11 [video] Waiting for more buffer before starting playback.
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [audio] Stalling Buffer
    dash.all.js:11 [audio] Waiting for more buffer before starting playback.
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 <video> loadedmetadata
    dash.all.js:11 Starting playback at offset: 0
    dash.all.js:11 [video] Getting the request for time: 29.499843750000004
    dash.all.js:11 [video] Index for time 29.499843750000004 is 2
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] Got enough buffer to start.
    dash.all.js:11 [video] seek: 0
    dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
    dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
    dash.all.js:11 [audio] Got enough buffer to start.
    dash.all.js:11 [audio] seek: 0
    dash.all.js:11 loaded audio:Media Segment:9.99996875 (200, 67ms, 24ms)
    dash.all.js:11 loaded video:Media Segment:9.83328125 (200, 71ms, 31ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 9.984
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 Start Event Controller
    dash.all.js:11 [audio] Buffered Range: 0.032 - 19.999968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 <video> play
    dash.all.js:11 [video] start
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [audio] start
    dash.all.js:11 <video> playing
    dash.all.js:11 [video] Buffered Range: 0 - 9
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 Do seek: 0.032
    dash.all.js:11 <video> seek
    dash.all.js:11 [video] Getting the request for time: 29.499843750000004
    dash.all.js:11 [video] Index for time 29.499843750000004 is 2
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] seek: 0.032
    dash.all.js:11 [audio] seek: 0.032
    dash.all.js:11 [video] Getting the request for time: 9
    dash.all.js:11 [video] Index for time 9 is 0
    dash.all.js:11 [video] SegmentList: 0 / 120
    dash.all.js:11 [video] SegmentList: 9.83328125 / 120
    dash.all.js:11 [video] SegmentList: 19.6665625 / 120
    dash.all.js:11 [video] SegmentList: 29.499843750000004 / 120
    dash.all.js:11 [video] Buffered Range: 0 - 18
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 loaded video:Media Segment:19.6665625 (200, 42ms, 33ms)
    dash.all.js:11 <video> seeked
    dash.all.js:11 Start Event Controller
    dash.all.js:11 <video> playing
    dash.all.js:11 [video] Buffered Range: 0 - 28
    dash.all.js:11 [video] Getting the request for time: 0
    dash.all.js:11 [video] Index for time 0 is 0
    dash.all.js:11 [audio] Getting the request for time: 19.999968
    dash.all.js:11 [audio] Index for time 19.999968 is 1
    dash.all.js:11 [audio] SegmentList: 9.99996875 / 120
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] Getting the request for time: 29.999906250000002
    dash.all.js:11 [audio] Index for time 29.999906250000002 is 2
    dash.all.js:11 [audio] SegmentList: 19.9999375 / 120
    dash.all.js:11 [audio] SegmentList: 29.999906250000002 / 120
    dash.all.js:11 loaded audio:Media Segment:19.9999375 (200, 102ms, 2ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 29.983968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 loaded audio:Media Segment:29.999906250000002 (200, 26ms, 2ms)
    dash.all.js:11 [audio] Buffered Range: 0.032 - 39.999968
    dash.all.js:11 [audio] Getting the request for time: 0
    dash.all.js:11 [audio] Index for time 0 is 0
    dash.all.js:11 loaded video:Media Segment:29.499843750000004 (200, 47ms, 7ms)
    dash.all.js:11 Video Element Error: MEDIA_ERR_DECODE
    dash.all.js:11 [video] stop
    dash.all.js:11 [audio] stop
    dash.all.js:11 Video Element Error: MEDIA_ERR_SRC_NOT_SUPPORTED
    dash.all.js:11 <video> play
    </video></video></video></video></video></video></video>
  • Play video using mse (media source extension) in google chrome

    23 août 2019, par liyuqihxc

    I’m working on a project that convert rtsp stream (ffmpeg) and play it on the web page (signalr + mse).

    So far it works pretty much as I expected on the latest version of edge and firefox, but not chrome.

    here’s the code

    public class WebmMediaStreamContext
    {
       private Process _ffProcess;
       private readonly string _cmd;
       private byte[] _initSegment;
       private Task _readMediaStreamTask;
       private CancellationTokenSource _cancellationTokenSource;

       private const string _CmdTemplate = "-i {0} -c:v libvpx -tile-columns 4 -frame-parallel 1 -keyint_min 90 -g 90 -f webm -dash 1 pipe:";

       public static readonly byte[] ClusterStart = { 0x1F, 0x43, 0xB6, 0x75, 0x01, 0x00, 0x00, 0x00 };

       public event EventHandler<clusterreadyeventargs> ClusterReadyEvent;

       public WebmMediaStreamContext(string rtspFeed)
       {
           _cmd = string.Format(_CmdTemplate, rtspFeed);
       }

       public async Task StartConverting()
       {
           if (_ffProcess != null)
               throw new InvalidOperationException();

           _ffProcess = new Process();
           _ffProcess.StartInfo = new ProcessStartInfo
           {
               FileName = "ffmpeg/ffmpeg.exe",
               Arguments = _cmd,
               UseShellExecute = false,
               CreateNoWindow = true,
               RedirectStandardOutput = true
           };
           _ffProcess.Start();

           _initSegment = await ParseInitSegmentAndStartReadMediaStream();
       }

       public byte[] GetInitSegment()
       {
           return _initSegment;
       }

       // Find the first cluster, and everything before it is the InitSegment
       private async Task ParseInitSegmentAndStartReadMediaStream()
       {
           Memory<byte> buffer = new byte[10 * 1024];
           int length = 0;
           while (length != buffer.Length)
           {
               length += await _ffProcess.StandardOutput.BaseStream.ReadAsync(buffer.Slice(length));
               int cluster = buffer.Span.IndexOf(ClusterStart);
               if (cluster >= 0)
               {
                   _cancellationTokenSource = new CancellationTokenSource();
                   _readMediaStreamTask = new Task(() => ReadMediaStreamProc(buffer.Slice(cluster, length - cluster).ToArray(), _cancellationTokenSource.Token), _cancellationTokenSource.Token, TaskCreationOptions.LongRunning);
                   _readMediaStreamTask.Start();
                   return buffer.Slice(0, cluster).ToArray();
               }
           }

           throw new InvalidOperationException();
       }

       private void ReadMoreBytes(Span<byte> buffer)
       {
           int size = buffer.Length;
           while (size > 0)
           {
               int len = _ffProcess.StandardOutput.BaseStream.Read(buffer.Slice(buffer.Length - size));
               size -= len;
           }
       }

       // Parse every single cluster and fire ClusterReadyEvent
       private void ReadMediaStreamProc(byte[] bytesRead, CancellationToken cancel)
       {
           Span<byte> buffer = new byte[5 * 1024 * 1024];
           bytesRead.CopyTo(buffer);
           int bufferEmptyIndex = bytesRead.Length;

           do
           {
               if (bufferEmptyIndex &lt; ClusterStart.Length + 4)
               {
                   ReadMoreBytes(buffer.Slice(bufferEmptyIndex, 1024));
                   bufferEmptyIndex += 1024;
               }

               int clusterDataSize = BitConverter.ToInt32(
                   buffer.Slice(ClusterStart.Length, 4)
                   .ToArray()
                   .Reverse()
                   .ToArray()
               );
               int clusterSize = ClusterStart.Length + 4 + clusterDataSize;
               if (clusterSize > buffer.Length)
               {
                   byte[] newBuffer = new byte[clusterSize];
                   buffer.Slice(0, bufferEmptyIndex).CopyTo(newBuffer);
                   buffer = newBuffer;
               }

               if (bufferEmptyIndex &lt; clusterSize)
               {
                   ReadMoreBytes(buffer.Slice(bufferEmptyIndex, clusterSize - bufferEmptyIndex));
                   bufferEmptyIndex = clusterSize;
               }

               ClusterReadyEvent?.Invoke(this, new ClusterReadyEventArgs(buffer.Slice(0, bufferEmptyIndex).ToArray()));

               bufferEmptyIndex = 0;
           } while (!cancel.IsCancellationRequested);
       }
    }
    </byte></byte></byte></clusterreadyeventargs>

    I use ffmpeg to convert the rtsp stream to vp8 WEBM byte stream and parse it to "Init Segment" (ebml head、info、tracks...) and "Media Segment" (cluster), then send it to browser via signalR

    $(function () {

       var mediaSource = new MediaSource();
       var mimeCodec = 'video/webm; codecs="vp8"';

       var video = document.getElementById('video');

       mediaSource.addEventListener('sourceopen', callback, false);
       function callback(e) {
           var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);
           var queue = [];

           sourceBuffer.addEventListener('updateend', function () {
               if (queue.length === 0) {
                   return;
               }

               var base64 = queue[0];
               if (base64.length === 0) {
                   mediaSource.endOfStream();
                   queue.shift();
                   return;
               } else {
                   var buffer = new Uint8Array(atob(base64).split("").map(function (c) {
                       return c.charCodeAt(0);
                   }));
                   sourceBuffer.appendBuffer(buffer);
                   queue.shift();
               }
           }, false);

           var connection = new signalR.HubConnectionBuilder()
               .withUrl("/signalr-video")
               .configureLogging(signalR.LogLevel.Information)
               .build();
           connection.start().then(function () {
               connection.stream("InitVideoReceive")
                   .subscribe({
                       next: function(item) {
                           if (queue.length === 0 &amp;&amp; !!!sourceBuffer.updating) {
                               var buffer = new Uint8Array(atob(item).split("").map(function (c) {
                                   return c.charCodeAt(0);
                               }));
                               sourceBuffer.appendBuffer(buffer);
                               console.log(blockindex++ + " : " + buffer.byteLength);
                           } else {
                               queue.push(item);
                           }
                       },
                       complete: function () {
                           queue.push('');
                       },
                       error: function (err) {
                           console.error(err);
                       }
                   });
           });
       }
       video.src = window.URL.createObjectURL(mediaSource);
    })

    chrome just play the video for 3 5 seconds and then stop for buffering, even though there are plenty of cluster transfered and inserted into SourceBuffer.

    here’s the information in chrome ://media-internals/

    Player Properties :

    render_id: 217
    player_id: 1
    origin_url: http://localhost:52531/
    frame_url: http://localhost:52531/
    frame_title: Home Page
    url: blob:http://localhost:52531/dcb25d89-9830-40a5-ba88-33c13b5c03eb
    info: Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    pipeline_state: kSuspended
    found_video_stream: true
    video_codec_name: vp8
    video_dds: false
    video_decoder: FFmpegVideoDecoder
    duration: unknown
    height: 720
    width: 1280
    video_buffering_state: BUFFERING_HAVE_NOTHING
    for_suspended_start: false
    pipeline_buffering_state: BUFFERING_HAVE_NOTHING
    event: PAUSE

    Log

    Timestamp       Property            Value
    00:00:00 00     origin_url          http://localhost:52531/
    00:00:00 00     frame_url           http://localhost:52531/
    00:00:00 00     frame_title         Home Page
    00:00:00 00     url                 blob:http://localhost:52531/dcb25d89-9830-40a5-ba88-33c13b5c03eb
    00:00:00 00     info                ChunkDemuxer: buffering by DTS
    00:00:00 35     pipeline_state      kStarting
    00:00:15 213    found_video_stream  true
    00:00:15 213    video_codec_name    vp8
    00:00:15 216    video_dds           false
    00:00:15 216    video_decoder       FFmpegVideoDecoder
    00:00:15 216    info                Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    00:00:15 216    pipeline_state      kPlaying
    00:00:15 213    duration            unknown
    00:00:16 661    height              720
    00:00:16 661    width               1280
    00:00:16 665    video_buffering_state       BUFFERING_HAVE_ENOUGH
    00:00:16 665    for_suspended_start         false
    00:00:16 665    pipeline_buffering_state    BUFFERING_HAVE_ENOUGH
    00:00:16 667    pipeline_state      kSuspending
    00:00:16 670    pipeline_state      kSuspended
    00:00:52 759    info                Effective playback rate changed from 0 to 1
    00:00:52 759    event               PLAY
    00:00:52 759    pipeline_state      kResuming
    00:00:52 760    video_dds           false
    00:00:52 760    video_decoder       FFmpegVideoDecoder
    00:00:52 760    info                Selected FFmpegVideoDecoder for video decoding, config: codec: vp8 format: 1 profile: vp8 coded size: [1280,720] visible rect: [0,0,1280,720] natural size: [1280,720] has extra data? false encryption scheme: Unencrypted rotation: 0°
    00:00:52 760    pipeline_state      kPlaying
    00:00:52 793    height              720
    00:00:52 793    width               1280
    00:00:52 798    video_buffering_state       BUFFERING_HAVE_ENOUGH
    00:00:52 798    for_suspended_start         false
    00:00:52 798    pipeline_buffering_state    BUFFERING_HAVE_ENOUGH
    00:00:56 278    video_buffering_state       BUFFERING_HAVE_NOTHING
    00:00:56 295    for_suspended_start         false
    00:00:56 295    pipeline_buffering_state    BUFFERING_HAVE_NOTHING
    00:01:20 717    event               PAUSE
    00:01:33 538    event               PLAY
    00:01:35 94     event               PAUSE
    00:01:55 561    pipeline_state      kSuspending
    00:01:55 563    pipeline_state      kSuspended

    Can someone tell me what’s wrong with my code, or dose chrome require some magic configuration to work ?

    Thanks 

    Please excuse my english :)

  • Revision 30332 : On passe la génération de la file d’attente et donc des inserts en base ...

    29 juillet 2009, par kent1@… — Log

    On passe la génération de la file d’attente et donc des inserts en base dans l’action spipmotion_ajouter_file
    On ajoute un suffixe au nom de fichier -encoded pour éviter de boucler sur les encodages
    On clean aussi un chouilla