Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (49)

  • 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

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (8770)

  • Dash.js not playing mpd files made with ffmpeg

    31 décembre 2022, par Macster

    I'm using ffmpeg to create chunks and manifest of a webm file which I want to live stream with Dash.js. Unfortunately Dash.js won't play the mpd file, no matter which way I create the chunks and manifest. However, the sample mpd URL from Dash.js is working.

    


    Commands

    


    ffmpeg -re -r 25 -i Dash/strm.webm
-map 0:v:0
-pix_fmt yuv420p
-c:v libvpx
-s 640x480 -keyint_min 60 -g 60 -speed 6 -tile-columns 4 -frame-parallel 1 -threads 8 -static-thresh 0 -max-intra-rate 300 -deadline realtime -lag-in-frames 0 -error-resilient 1
-b:v 3000k
-f webm_chunk
-header "Dash/glass_360.hdr"
-chunk_start_index 1 Dash/glass_360_%d.chk
-map 0:a:0
-c:a libvorbis
-b:a 128k -ar 44100
-f webm_chunk
-audio_chunk_duration 2000
-header Dash/glass_171.hdr
-chunk_start_index 1 Dash/glass_171_%d.chk


//Manifest
ffmpeg
-f webm_dash_manifest -live 1
-i Dash/glass_360.hdr
-f webm_dash_manifest -live 1
-i Dash/glass_171.hdr
-c copy
-map 0 -map 1
-f webm_dash_manifest -live 1
-adaptation_sets "id=0,streams=0 id=1,streams=1"
-chunk_start_index 1
-chunk_duration_ms 2000
-time_shift_buffer_depth 7200
-minimum_update_period 7200 Dash/glass_video_manifest.mpd


    


    Manifest output

    


    ffmpeg version git-2020-05-27-8b5ffae Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200523
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 49.100 / 56. 49.100
  libavcodec     58. 87.101 / 58. 87.101
  libavformat    58. 43.100 / 58. 43.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 83.100 /  7. 83.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, webm_dash_manifest, from 'Dash/glass_360.hdr':
  Metadata:
    ENCODER         : Lavf58.43.100
  Duration: N/A, bitrate: N/A
    Stream #0:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 1k tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ALPHA_MODE      : 1
      ENCODER         : Lavc58.87.101 libvpx
      webm_dash_manifest_file_name: glass_360.hdr
      webm_dash_manifest_track_number: 1
Input #1, webm_dash_manifest, from 'Dash/glass_171.hdr':
  Metadata:
    ENCODER         : Lavf58.43.100
  Duration: N/A, bitrate: N/A
    Stream #1:0(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
    Metadata:
      ENCODER         : Lavc58.87.101 libvorbis
      webm_dash_manifest_file_name: glass_171.hdr
      webm_dash_manifest_track_number: 1
Output #0, webm_dash_manifest, to 'Dash/glass_video_manifest.mpd':
  Metadata:
    encoder         : Lavf58.43.100
    Stream #0:0(eng): Video: vp8, yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 1k tbr, 1k tbn, 1k tbc (default)
    Metadata:
      ALPHA_MODE      : 1
      ENCODER         : Lavc58.87.101 libvpx
      webm_dash_manifest_file_name: glass_360.hdr
      webm_dash_manifest_track_number: 1
    Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
    Metadata:
      ENCODER         : Lavc58.87.101 libvorbis
      webm_dash_manifest_file_name: glass_171.hdr
      webm_dash_manifest_track_number: 1
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=-1.0 Lsize=       1kB time=00:00:00.00 bitrate=N/A speed=   0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: unknown


    


    Manifest file
    (glass_video_manifest.mpd)
    
I tried to delete the ContetntComponent like suggested in other questions, but it didn't work.

    


    &lt;?xml version="1.0" encoding="UTF-8"?>&#xA;&#xA;<period start="PT0S">&#xA;<adaptationset mimetype="video/webm" codecs="vp8" lang="eng" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">&#xA;<contentcomponent type="video"></contentcomponent>&#xA;<segmenttemplate timescale="1000" duration="2000" media="glass_$RepresentationID$_$Number$.chk" startnumber="1" initialization="glass_$RepresentationID$.hdr"></segmenttemplate>&#xA;<representation bandwidth="1000000" width="640" height="480" codecs="vp8" mimetype="video/webm" startswithsap="1"></representation>&#xA;</adaptationset>&#xA;<adaptationset mimetype="audio/webm" codecs="vorbis" lang="eng" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">&#xA;<contentcomponent type="audio"></contentcomponent>&#xA;<segmenttemplate timescale="1000" duration="2000" media="glass_$RepresentationID$_$Number$.chk" startnumber="1" initialization="glass_$RepresentationID$.hdr"></segmenttemplate>&#xA;<representation bandwidth="128000" audiosamplingrate="44100" codecs="vorbis" mimetype="audio/webm" startswithsap="1"></representation>&#xA;</adaptationset>&#xA;</period>&#xA;&#xA;

    &#xA;

    Dash.js-Player

    &#xA;

    <code class="echappe-js">&lt;script&gt;&amp;#xA;&amp;#xA;(function(){&amp;#xA;  // var url = &quot;https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd&quot;;&amp;#xA;  var url = &quot;http://localhost:8081/videos/Dash/glass_live_manifest.mpd&quot;;&amp;#xA;  var player = dashjs.MediaPlayer().create();&amp;#xA;                &amp;#xA;  // config&amp;#xA;  targetLatency = 2.0;        // Lowering this value will lower latency but may decrease the player&amp;#x27;s ability to build a stable buffer.&amp;#xA;  minDrift = 0.05;            // Minimum latency deviation allowed before activating catch-up mechanism.&amp;#xA;  catchupPlaybackRate = 0.5;  // Maximum catch-up rate, as a percentage, for low latency live streams.&amp;#xA;  stableBuffer = 2;           // The time that the internal buffer target will be set to post startup/seeks (NOT top quality).&amp;#xA;  bufferAtTopQuality = 2;     // The time that the internal buffer target will be set to once playing the top quality.&amp;#xA;&amp;#xA;   player.updateSettings({&amp;#xA;      &amp;#x27;streaming&amp;#x27;: {&amp;#xA;          &amp;#x27;liveDelay&amp;#x27;: 2,&amp;#xA;          &amp;#x27;liveCatchUpMinDrift&amp;#x27;: 0.05,&amp;#xA;          &amp;#x27;liveCatchUpPlaybackRate&amp;#x27;: 0.5,&amp;#xA;          &amp;#x27;stableBufferTime&amp;#x27;: 2,&amp;#xA;          &amp;#x27;bufferTimeAtTopQuality&amp;#x27;: 2,&amp;#xA;          &amp;#x27;bufferTimeAtTopQualityLongForm&amp;#x27;: 2,&amp;#xA;          &amp;#x27;bufferToKeep&amp;#x27;: 2,&amp;#xA;          &amp;#x27;bufferAheadToKeep&amp;#x27;: 2,&amp;#xA;          &amp;#x27;lowLatencyEnabled&amp;#x27;: true,&amp;#xA;          &amp;#x27;fastSwitchEnabled&amp;#x27;: true,&amp;#xA;          &amp;#x27;abr&amp;#x27;: {&amp;#xA;               &amp;#x27;limitBitrateByPortal&amp;#x27;: true&amp;#xA;          },&amp;#xA;       }&amp;#xA;   });&amp;#xA;&amp;#xA;   console.log(player.getSettings());&amp;#xA;&amp;#xA;   setInterval(() =&gt; {&amp;#xA;      console.log(&amp;#x27;Live latency= &amp;#x27;, player.getCurrentLiveLatency());&amp;#xA;      console.log(&amp;#x27;Buffer length= &amp;#x27;, player.getBufferLength(&amp;#x27;video&amp;#x27;));&amp;#xA;     }, 3000);&amp;#xA;&amp;#xA;     player.initialize(document.querySelector(&quot;#videoPlayer&quot;), url, true);&amp;#xA;&amp;#xA;   })();&amp;#xA;&lt;/script&gt;&#xA;

    &#xA;

    Chrome

    &#xA;

    {debug: {…}, streaming: {…}}&#xA;dash.all.min.js:2 XHR finished loading: GET "http://localhost:8081/videos/Dash/glass_live_manifest.mpd".&#xA;load @ dash.all.min.js:2&#xA;C @ dash.all.min.js:2&#xA;load @ dash.all.min.js:2&#xA;load @ dash.all.min.js:2&#xA;load @ dash.all.min.js:2&#xA;load @ dash.all.min.js:2&#xA;se @ dash.all.min.js:2&#xA;te @ dash.all.min.js:2&#xA;initialize @ dash.all.min.js:2&#xA;(anonymous) @ Dash:92&#xA;(anonymous) @ Dash:94&#xA;DevTools failed to load SourceMap: Could not parse content for http://localhost:8081/js/dash.all.min.js.map: Cannot read property &#x27;length&#x27; of undefined&#xA;Dash:88 Live latency=  NaN&#xA;Dash:89 Buffer length=  NaN&#xA;Dash:88 Live latency=  NaN&#xA;Dash:89 Buffer length=  NaN&#xA;Dash:88 Live latency=  NaN&#xA;Dash:89 Buffer length=  NaN&#xA;Dash:88 Live latency=  NaN&#xA;Dash:89 Buffer length=  NaN&#xA;Dash:88 Live latency=  NaN&#xA;Dash:89 Buffer length=  NaN&#xA;

    &#xA;

    UPDATE

    &#xA;

    Well, it seems like the problem in general was, that the mpd's wouldn't play from that /dash folder. So i took a look into the code and found a bad routing. Anyways, the mpd would't start with the given command I used, probably becasue it creates a dynamic manifest, like @Markus Schumann says. So I'm going with a new one which seems to be working for now, but not very well.

    &#xA;

    ffmpeg -y -re -i strm.webm &#xA;-c:v libx264 -x264opts "keyint=24:min-keyint=24:no-scenecut" &#xA;-r 24 -c:a aac -b:a 128k -bf 1 -b_strategy 0 -sc_threshold 0 -pix_fmt yuv420p &#xA;-map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -b:v:0 250k  &#xA;-filter:v:0 "scale=-2:240" -profile:v:0 baseline -b:v:1 750k  &#xA;-filter:v:1 "scale=-2:480" -profile:v:1 main -b:v:2 1500k &#xA;-filter:v:2 "scale=-2:720" -profile:v:2 high &#xA;-use_timeline 1 -use_template 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" &#xA;-f dash glass_video_manifest.mpd&#xA;

    &#xA;

  • FFMPEG : How to manually select video quality from mpd manifest ?

    18 juin 2022, par Deoxys

    I want to ask what command should I use to select video quality from mpd manifest ?

    &#xA;&#xA;

    mpd manifest link

    &#xA;&#xA;

    https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd&#xA;

    &#xA;&#xA;

    Here, the mpd file :

    &#xA;&#xA;

    &lt;?xml version="1.0" encoding="utf-8"?>&#xA;<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT7M59.240000S" minbuffertime="PT0S" maxsegmentduration="PT4S">&#xA;  <period duration="PT7M59.240000S">&#xA;    <adaptationset group="1" mimetype="audio/mp4" lang="en" contenttype="audio" minbandwidth="32000" maxbandwidth="64000">&#xA;<contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"></contentprotection><contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>      <role schemeiduri="urn:mpeg:dash:role:2011" value="main"></role>&#xA;      <representation bandwidth="32000" audiosamplingrate="22050" codecs="mp4a.40.2">&#xA;        <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;        <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;          <segmenttimeline>&#xA;            <s t="0" d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="3715193"></s>&#xA;          </segmenttimeline>&#xA;        </segmenttemplate>&#xA;      </representation>&#xA;      <representation bandwidth="64000" audiosamplingrate="22050" codecs="mp4a.40.2">&#xA;        <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;        <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;          <segmenttimeline>&#xA;            <s t="0" d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="3715193"></s>&#xA;          </segmenttimeline>&#xA;        </segmenttemplate>&#xA;      </representation>&#xA;    </adaptationset>&#xA;    <adaptationset group="2" framerate="25" mimetype="video/mp4" startwithsap="1" contenttype="video" par="16:9" minbandwidth="150119" maxbandwidth="5002530" minwidth="256" maxwidth="1920" minheight="144" maxheight="1080">&#xA;<contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"></contentprotection><contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>      <role schemeiduri="urn:mpeg:dash:role:2011" value="main"></role>&#xA;      <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;        <segmenttimeline>&#xA;          <s t="0" d="36000000" r="132"></s>&#xA;          <s d="4400000"></s>&#xA;        </segmenttimeline>&#xA;      </segmenttemplate>&#xA;      <representation bandwidth="150119" width="256" height="144" codecs="avc1.4d400c"></representation>&#xA;      <representation bandwidth="500565" width="640" height="360" codecs="avc1.4d401e"></representation>&#xA;      <representation bandwidth="1001193" width="854" height="480" codecs="avc1.4d401e"></representation>&#xA;      <representation bandwidth="2502286" width="1280" height="720" codecs="avc1.4d401f"></representation>&#xA;      <representation bandwidth="5002530" width="1920" height="1080" codecs="avc1.4d4028"></representation>&#xA;    </adaptationset>&#xA;  </period>&#xA;</mpd>&#xA;

    &#xA;&#xA;

    The video is not encrypted with DRM. When I tried to download with FFmpeg, success, but FFmpeg automatically select the worst quality (144p).

    &#xA;&#xA;

    FFmpeg command I use :

    &#xA;&#xA;

    ffmpeg -i https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd -c copy kiko1.mp4&#xA;

    &#xA;&#xA;

    Result from ffmpeg

    &#xA;&#xA;

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)&#xA;  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared&#xA;  libavutil      55. 78.100 / 55. 78.100&#xA;  libavcodec     57.107.100 / 57.107.100&#xA;  libavformat    57. 83.100 / 57. 83.100&#xA;  libavdevice    57. 10.100 / 57. 10.100&#xA;  libavfilter     6.107.100 /  6.107.100&#xA;  libavresample   3.  7.  0 /  3.  7.  0&#xA;  libswscale      4.  8.100 /  4.  8.100&#xA;  libswresample   2.  9.100 /  2.  9.100&#xA;  libpostproc    54.  7.100 / 54.  7.100&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-init.mp4[/URL]&#x27; for reading [dash @ 0x562ae2e98000] Could not read complete fragment.&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-0.mp4[/URL]&#x27; for reading&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-init.mp4[/URL]&#x27; for reading [dash @ 0x562ae2e98000] Could not read complete fragment.&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-0.mp4[/URL]&#x27; for reading&#xA;[aac @ 0x562ae32ced00] channel element 2.3 is not allocated&#xA;[h264 @ 0x562ae32cc500] top block unavailable for requested intra mode -1&#xA;[h264 @ 0x562ae32cc500] error while decoding MB 0 0, bytestream 38&#xA;[h264 @ 0x562ae32cc500] concealing 144 DC, 144 AC, 144 MV errors in I frame&#xA;Input #0, dash, from &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd[/URL]&#x27;:&#xA;  Duration: 00:07:59.00, start: 0.000000, bitrate: 0 kb/s &#xA;Program 0&#xA;     Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 256x144 [SAR 1:1 DAR 16:9], 153 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc  &#xA;     Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s&#xA;Output #0, mp4, to &#x27;kiko1.mp4&#x27;: &#xA;   Metadata:   &#xA;      encoder         : Lavf57.83.100   &#xA;      Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 256x144 [SAR 1:1 DAR 16:9], q=2-31, 153 kb/s, 25 fps, 25 tbr, 10000k tbn, 10000k tbc&#xA;Stream mapping: &#xA;   Stream #0:0 -> #0:0 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-36223129.mp4[/URL]&#x27; for reading&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-36000000.mp4[/URL]&#x27; for reading&#xA;....&#xA;....&#xA;frame=11978 fps= 99 q=-1.0 Lsize=    8891kB time=00:07:59.08 bitrate= 152.0kbits/s speed=3.97x&#xA;video:8779kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.269990%&#xA;

    &#xA;&#xA;

    Tried youtube-dl & streamlink but failed.&#xA;So, I use FFmpeg because it success to download the video and audio. I have read FFmpeg documentation but I have no idea what command should I use.&#xA;What command should I use to select another quality ? (ex : audio 64 kbps, video : 720p)

    &#xA;&#xA;

    &#xA;

    Note : just change (dot) to .

    &#xA;

    &#xA;

  • Your guide to cookies, web analytics, and GDPR compliance

    25 février 2020, par Joselyn Khor — Analytics Tips, Privacy, Security

    It’s been almost two years since the GDPR came into effect and turned the online world on its head. Confusion around cookies/cookie consent/cookie compliance remains till today. So we’d like to take this chance to talk more about the supposed “big bad” of the latest century. 

    Online cookies seem to have a bad reputation, but are they as bad as they seem ?

    To start, what are cookies on the internet ?

    An internet cookie a.k.a. an HTTP cookie, is a small piece of data sent from websites that is stored on your computer or mobile when you visit that site.

    Are all cookies bad ?

    No. Cookies themselves are usually harmless as they can’t infect computers with malware. 

    They can also be helpful for both websites who use them and individuals visiting those websites. For example, when online shopping, cookies on ecommerce sites keep track of what you’re shopping for. If you didn’t have that tracking, your cart would be empty every time you moved away from that site.

    For businesses/websites, cookies can be used for authentication (logins) and tracking website user experience. For example, tracking multiple visits to the same site in order to provide better experiences to customers visiting their website.

    internet cookies tracking

    The not-so-sweet types of cookies :

    Cookies that contain personal data

    Another example of a bad cookie is when cookies contain personal data directly in the cookie itself. For example, when websites store demographics or your name in a cookie ; or when a website stores survey results in a cookie. Use of cookies in these ways is considered bad practice nowadays.

    Third-party cookies

    They can be used by websites to learn about your visit and activity across multiple websites. Cookies can enter harmful territory when employed for “big brother” types of tracking i.e. when they’re used to build a virtual fingerprint of individuals after their activity is tracked from website to website. For example most advertising networks create third party cookies in your browser when you view an ad, which lets these advertisers track users across these websites and let companies buy more targeted ads.

    Why does Matomo use cookies ?

    web analytics cookies

    For accurate reporting of new and returning visitors. Matomo uses cookies to store some information about visitors between visits. We also use cookies to remember if someone gave consent to tracking, or opted out of tracking. 

    Types of cookies Matomo uses :

    • Matomo by default uses first-party cookies, set on the domain of your site.
    • Cookies created by Matomo start with : _pk_ref_pk_cvar_pk_id_pk_ses. See a list of all Matomo cookies : https://matomo.org/faq/general/faq_146/

    Cookie-less tracking - disable cookies and ensure cookie compliance :

    It’s possible to disable tracking cookies in Matomo by adding a line on the javascript code. When cookies are disabled, Matomo data will become slightly less accurateAlso, when cookies are disabled, there may still be a few cookies created in specific cases.

    If you disable cookies, Matomo tries to detect unique visitors by a fingerprint based on a few browser attributes : operating system, browser, browser plugins, IP address and browser language.

    By disabling tracking cookies, you may also use Matomo without needing to display a cookie consent screen. You can also keep tracking when they reject cookie consent by keeping cookies disabled.

    Cookies and the GDPR

    In some countries and according to the GDPR, websites need to provide a way for users to opt-out of all tracking, in particular tracking cookies.

    The GDPR regulates the use of cookies when they compromise an individual’s privacy. When cookies can identify an individual, it is considered personal data.

    cookies and GDPR

    Cookie compliance and the GDPR

    To be GDPR compliant you must :

    • Receive user consent before using any cookies (except strictly necessary cookies). Read more on cookies that are “clearly exempt from consent”.
    • Provide accurate and specific information about the data each cookie tracks and its purpose in plain language before consent is received.
    • Document and store consent received from users.
    • Allow users to access your service even if they refuse to allow the use of certain cookies
    • Make it as easy for users to withdraw their consent as it was for them to give their consent in the first place.

    Source : https://gdpr.eu/cookies/

    When does GDPR require cookie consent ?

    The purpose of the GDPR is to give individuals control over their personal data. As such this regulation has provisions and requirements which regulate the processing of personal data to protect the privacy of individuals. 

    This means in order to use cookies, you will sometimes need explicit consent from those individuals.

    When does GDPR not require cookie consent ?

    Then there are many cookies that generally do NOT require consent (Source : https://wikis.ec.europa.eu/display/WEBGUIDE/04.+Cookies). 

    These are :

    • user input cookies, for the duration of a session
    • authentication cookies, for the duration of a session
    • user-centric security cookies, used to detect authentication abuses and linked to the functionality explicitly requested by the user, for a limited persistent duration
    • multimedia content player session cookies, such as flash player cookies, for the duration of a session
    • load balancing session cookies and other technical cookies, for the duration of session
    • user interface customisation cookies, for a browser session or a few hours, when additional information in a prominent location is provided (e.g. “uses cookies” written next to the customisation feature)

    Tracking cookies and consent vs legitimate interest

    cookie consent and GDPR legitimate interests

    User consent is not always required :

    We understand that whenever you collect and process personal data, you need – almost always – to ask for their consent. However, there are instances where you have to process data under “legitimate interests”. The GDPR states that processing of personal data is lawful “if processing is necessary for the purposes of the legitimate interests”. This means if you have “legitimate interests” you can avoid asking for consent for collecting and processing personal information. Learn more : https://cookieinformation.com/resources/blog/what-is-legitimate-interest-under-the-gdpr 

    A lawful basis for processing personal data (proceeding with caution) :

    We’ve also written about having a lawful basis for processing personal data under GDPR with Matomo. The caveat here is you need to have a strong argument for legitimate interests. If you are processing personal data which may represent a risk to the final user, then getting consent is, for us, still the right lawful basis. If you are not sure, at the time of writing ICO is providing a tool in order to help you make this decision.

    How is Matomo Analytics GDPR compliant ?

    Matomo can be configured to automatically anonymise data so you don’t process any personal data. This allows you to completely avoid GDPR. If you decide to process personal data, Matomo provides you with 12 steps to easily comply with the GDPR guidelines.

    New developments on cookies and the GDPR

    In the early days of the GDPR, a spate of cookie management platforms (CMPs) popped up to help websites and people comply with GDPR rules around cookies.

    These have become problematic in recent years. Europe’s highest court ruled pre-checked box for cookie boxes does not give enough consent

    As well as that, new research suggests most cookie consent pop-ups in the EU fall short of GDPR. A new study called, ‘Dark Patterns after the GDPR’ from MIT, UCL and Aarhus University found that a vast majority of websites aren’t following GDPR rules around cookies. The study found most cookie consent pop-ups in the EU to be undermining the GDPR by finding sneaky ways to convince website visitors to click ‘accept’.

    Disclaimer

    We are not lawyers and don’t claim to be. The information provided here is to help give an introduction to issues you may encounter when dealing cookies. We encourage every business and website to take data privacy seriously and discuss these issues with your lawyer if you have any concerns. 

    Additional resources :