Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (96)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • 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

Sur d’autres sites (4996)

  • Date and segment comparison feature

    31 octobre 2019, par Matomo Core Team — Analytics Tips, Development

    Get a clearer picture with the date and segment comparison feature

    What can you do with it ? What are the benefits ?

    Make informed decisions faster by easily comparing different segments and dates with each other.

    Compare report data for multiple segments next to each other

    Segment comparison feature

    Directly compare the behaviour of visitors from different segments e.g. customers with accounts vs. customers without accounts. Segment comparisons are a powerful way to compare different audience ; learn which ones perform better ; and in what way their actions differ. 

    Compare report data for two time periods next to each other

    Comparing date ranges

    See how your website performs compared to the previous month/week/year. Including seeing trends over those periods. Say, your business always picks up at the same times within a year, or there’s a sag in business for every user segment over this year and the last except one.

    By being able to compare date ranges you are able to get a quick overview of trends and period to period performance. Has a campaign worked better in September than in October ? Get an instant look by having the side-by-side comparison in Matomo.

    What is it capable of ?

    It lets you ask the question, “What is different ?”

    If you look at reports you’ll only see how people behave overall and if you look at specific segments you’ll see how they behave at face value, however, if you compare data together you’ll be quickly informed on what makes them unique. This data is still there when you don’t use the comparison feature, it’s just buried. Comparing data highlights discrepancies and leads to important questions and answers.

    For example, perhaps some class of users have very low engagement on a specific day compared to the rest of your visitors, and perhaps those users are responsible for an outsized proportion of churn. 

    Who could benefit from it, and why ?

    Everyone can benefit from using it (and probably should use it). It’s yours to experiment with ! You shouldn’t feel restricted to only comparing between the current and last period, or having questions before you start comparing. Follow your instincts and see what pops out when data from different segments is laid out next to each other.

    Where can you find it in Matomo ?

    • Segment comparison is activated by the new icon in the segment selector
    Segment comparison feature
    • Date comparison can be found in the calendar section of Matomo
    Date comparison feature
    • The list of active comparisons is visible at the top of the page for all pages that support comparison
    • Comparisons are visible in every report that supports comparing data, and reports that do not support it will display a message saying so

    How do you use it ?

    • To compare segments, click the icon in the segment selector
    • To compare periods, click the ‘compare’ checkbox in the period selector, then select what period you want to compare it against in the dropdown (previous period, previous year, or a custom range)
    • When comparisons are active, view your reports as normal

    Take it away !

    The comparison feature is a new tool from Matomo 3.12.0 that highlights discrepancies and differences in data that can lead to more clarity and understanding, so we’d encourage everyone to use it. 

    Try it out today in your Matomo and see the power behind this new data comparison mode !

  • FFMPEG, Creating an MPEG-DASH stream with existing inputs

    10 septembre 2019, par kitensei

    I am trying to generating a DASH .mpd file from multiple inputs (2 videos, 1 audio) without any success..

    What I’d like to do it’s simple getting the streams and create an mpd file without any re encoding since I’ve already my sources ready.

    The output seems to work in rxplayer, but I do get a lot of errors (see log below).

    Here are my 3 sources (taken from http://dash-mse-test.appspot.com/media.html) :

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-89.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-89.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-24T03:04:15.000000Z
     Duration: 00:03:01.39, start: 0.000000, bitrate: 4202 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 171 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-88.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-88.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-27T01:01:28.000000Z
     Duration: 00:03:01.43, start: 0.000000, bitrate: 2076 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 81 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler

    ➜  test-dash $ ffprobe -hide_banner ../test-sources/car/car-20120827-8b.mp4
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-8b.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6mp41
       creation_time   : 2012-08-27T01:19:23.000000Z
     Duration: 00:03:01.63, start: 0.000000, bitrate: 31 kb/s
       Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, mono, fltp, 1 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T01:19:23.000000Z
         handler_name    : SoundHandler

    And here how I am "muxing" them together with an .mpd manifest :

    ffmpeg  \
    -re \
    -i ../test-sources/car/car-20120827-88.mp4 \
    -i ../test-sources/car/car-20120827-89.mp4 \
    -i ../test-sources/car/car-20120827-8d.mp4 \
    -map 0:0  \
    -map 1:0 \
    -map 2:0 \
    -c copy \
    -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
    -b_strategy 0 -use_timeline 1 -use_template 1 \
    -adaptation_sets "id=0,streams=v id=1,streams=a" \
    -f dash out.mpd

    The generated mpd 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" mediapresentationduration="PT3M1.3S" minbuffertime="PT10.0S">
       <programinformation>
       </programinformation>
       <period start="PT0.0S">
           <adaptationset contenttype="video" segmentalignment="true" bitstreamswitching="true" lang="und">
               <representation mimetype="video/mp4" codecs="avc1.4d401f" bandwidth="81397" width="1280" height="720" framerate="45000/1877">
                   <segmenttemplate timescale="24000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="120128"></s>
                           <s d="120120" r="34"></s>
                           <s d="29023"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
               <representation mimetype="video/mp4" codecs="avc1.640028" bandwidth="171953" width="1920" height="1080" framerate="45000/1877">
                   <segmenttemplate timescale="24000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="121129"></s>
                           <s d="239239"></s>
                           <s d="120120" r="32"></s>
                           <s d="29023"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
           </adaptationset>
           <adaptationset contenttype="audio" segmentalignment="true" bitstreamswitching="true" lang="und">
               <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="13976" audiosamplingrate="44100">
                   <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
                   <segmenttemplate timescale="44100" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
                       <segmenttimeline>
                           <s t="0" d="219136"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184" r="1"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="221184"></s>
                           <s d="220160"></s>
                           <s d="63488"></s>
                       </segmenttimeline>
                   </segmenttemplate>
               </representation>
           </adaptationset>
       </period>
    </mpd>

    But I get a lot of errors :

    ➜  test-dash git:(0.1) ✗ ffmpeg  \
    -re \
    -i ../test-sources/car/car-20120827-88.mp4 \
    -i ../test-sources/car/car-20120827-89.mp4 \
    -i ../test-sources/car/car-20120827-8d.mp4 \
    -map 0:0  \
    -map 1:0 \
    -map 2:0 \
    -c copy \
    -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
    -b_strategy 0 -use_timeline 1 -use_template 1 \
    -adaptation_sets "id=0,streams=v id=1,streams=a" \
    -f dash out.mpd
    ffmpeg version n4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 9.1.0 (GCC)
     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
     libavutil      56. 31.100 / 56. 31.100
     libavcodec     58. 54.100 / 58. 54.100
     libavformat    58. 29.100 / 58. 29.100
     libavdevice    58.  8.100 / 58.  8.100
     libavfilter     7. 57.100 /  7. 57.100
     libswscale      5.  5.100 /  5.  5.100
     libswresample   3.  5.100 /  3.  5.100
     libpostproc    55.  5.100 / 55.  5.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-88.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-27T01:01:28.000000Z
     Duration: 00:03:01.43, start: 0.000000, bitrate: 2076 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 81 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-89.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       creation_time   : 2012-08-24T03:04:15.000000Z
     Duration: 00:03:01.39, start: 0.000000, bitrate: 4202 kb/s
       Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 171 kb/s, 23.97 fps, 23.97 tbr, 90k tbn, 47.95 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '../test-sources/car/car-20120827-8d.mp4':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6mp41
       creation_time   : 2012-08-27T00:59:44.000000Z
     Duration: 00:03:01.58, start: 0.000000, bitrate: 255 kb/s
       Stream #2:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 13 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T00:59:44.000000Z
         handler_name    : SoundHandler
    [dash @ 0x55b464bb1240] Opening 'init-stream0.m4s' for writing
    [dash @ 0x55b464bb1240] Opening 'init-stream1.m4s' for writing
    [dash @ 0x55b464bb1240] Opening 'init-stream2.m4s' for writing
    Output #0, dash, to 'out.mpd':
     Metadata:
       major_brand     : dash
       minor_version   : 0
       compatible_brands: iso6avc1mp41
       encoder         : Lavf58.29.100
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, q=2-31, 81 kb/s, 23.97 fps, 23.97 tbr, 24k tbn, 23.98 tbc (default)
       Metadata:
         creation_time   : 2012-08-27T01:01:28.000000Z
         handler_name    : VideoHandler
       Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, q=2-31, 171 kb/s, 23.97 fps, 23.97 tbr, 24k tbn, 23.98 tbc (default)
       Metadata:
         creation_time   : 2012-08-24T03:04:15.000000Z
         handler_name    : VideoHandler
       Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 13 kb/s (default)
       Metadata:
         creation_time   : 2012-08-27T00:59:44.000000Z
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #1:0 -> #0:1 (copy)
     Stream #2:0 -> #0:2 (copy)
    Press [q] to stop, [?] for help
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00001.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00001.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00001.m4s.tmp' for writing
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 119119 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00002.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Non-monotonous DTS in output stream 0:1; previous: 119127, current: 119119; changing to 119128. This may result in incorrect timestamps in the output file.
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -1000 / timestamp: 119128 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00002.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00002.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 120120 is out of range for mov/mp4 format
    [mp4 @ 0x55b464c425c0] pts has no value
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 239239 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing74 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 359359 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00004.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 359359 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00003.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00004.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing81 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 479479 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00005.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 479479 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00004.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00005.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing86 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 599599 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00006.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 599599 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00005.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00006.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing95 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 719719 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00007.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 719719 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00006.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00007.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing53 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 839839 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00008.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 839839 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00007.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00008.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing59 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 959959 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00009.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 959959 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00008.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00009.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing66 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1080079 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00010.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1080079 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00009.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00010.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing73 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1200199 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00011.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1200199 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00010.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00011.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing82 bitrate=N/A speed=   1x    
    [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 1320319 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00012.m4s.tmp' for writing
    [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 1320319 is out of range for mov/mp4 format
    [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00011.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00012.m4s.tmp' for writing
    [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing90 bitrate=N/A speed=   1x    
    ...
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 3962959 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00033.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00034.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing06 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4083079 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00035.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4083079 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00034.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00035.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing10 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4203199 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00036.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4203199 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00035.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00036.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing67 bitrate=N/A speed=   1x    
       [mp4 @ 0x55b464c3d840] Application provided duration: -8 / timestamp: 4323319 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream0-00037.m4s.tmp' for writing
       [mp4 @ 0x55b464c425c0] Application provided duration: -8 / timestamp: 4323319 is out of range for mov/mp4 format
       [dash @ 0x55b464bb1240] Opening 'chunk-stream1-00036.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'chunk-stream2-00037.m4s.tmp' for writing
       [dash @ 0x55b464bb1240] Opening 'out.mpd.tmp' for writing18 bitrate=N/A speed=   1x    
       frame= 4350 fps= 24 q=-1.0 Lq=-1.0 size=N/A time=00:03:01.55 bitrate=N/A speed=   1x    
       video:138926kB audio:5621kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
  • WebRTC books – a brief review

    1er janvier 2014, par silvia

    I just finished reading Rob Manson’s awesome book “Getting Started with WebRTC” and I can highly recommend it for any Web developer who is interested in WebRTC.

    Rob explains very clearly how to create your first video, audio or data peer-connection using WebRTC in current Google Chrome or Firefox (I think it also now applies to Opera, though that wasn’t the case when his book was published). He makes available example code, so you can replicate it in your own Web application easily, including the setup of a signalling server. He also points out that you need a ICE (STUN/TURN) server to punch through firewalls and gives recommendations for what software is available, but stops short of explaining how to set them up.

    Rob’s focus is very much on the features required in a typical Web application :

    • video calls
    • audio calls
    • text chats
    • file sharing

    In fact, he provides the most in-depth demo of how to set up a good file sharing interface I have come across.

    Rob then also extends his introduction to WebRTC to two key application areas : education and team communication. His recommendations are spot on and required reading for anyone developing applications in these spaces.

    Before Rob’s book, I have also read Alan Johnson and Dan Burnett’s “WebRTC” book on APIs and RTCWEB protocols of the HTML5 Real-Time Web.

    Alan and Dan’s book was written more than a year ago and explains that state of standardisation at that time. It’s probably a little out-dated now, but it still gives you good foundations on why some decisions were made the way they are and what are contentious issues (some of which still remain). If you really want to understand what happens behind the scenes when you call certain functions in the WebRTC APIs of browsers, then this is for you.

    Alan and Dan’s book explains in more details than Rob’s book how IP addresses of communication partners are found, how firewall holepunching works, how sessions get negotiated, and how the standards process works. It’s probably less useful to a Web developer who just wants to implement video call functionality into their Web application, though if something goes wrong you may find yourself digging into the details of SDP, SRTP, DTLS, and other cryptic abbreviations of protocols that all need to work together to get a WebRTC call working.

    Overall, both books are worthwhile and cover different aspects of WebRTC that you will stumble across if you are directly dealing with WebRTC code.