Recherche avancée

Médias (91)

Autres articles (87)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

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

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (8680)

  • 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 ?

    



    mpd manifest link

    



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


    



    Here, the mpd file :

    



    &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;

  • How to combine two ffmpeg bin script into one script

    25 février 2020, par Muhammad Naeem
    #!/bin/bash
    cmd="ffmpeg -re -i http://10.10.10.3:9981/stream/channelnumber/9 -vcodec copy -acodec copy -f mpegts udp://224.2.2.119:2001?pkt_size=188&amp;localaddr=192.168.2.119"
    until $cmd > /dev/null 2>&amp;1 &lt; /dev/null; do
    echo "restarting ffmpeg command..."
    sleep 2

    cmd="ffmpeg -re -i http://10.10.10.3:9981/stream/channelnumber/15 -vcodec copy -acodec copy -f mpegts udp://224.2.2.120:2002?pkt_size=188&amp;localaddr=192.168.2.119"
    until $cmd > /dev/null 2>&amp;1 &lt; /dev/null; do
    echo "restarting ffmpeg command..."
    sleep 2
    done
  • 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 :

    &lt;?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