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 (8936)

  • Gstreamer convert and display video v4l2 - tee problems in rust

    27 mars 2023, par d3im

    I have USB grabber v4l2 source and I want to tee stream to autovideosink and x264enc to file (now as fake black hole)

    


    When I disable one or another branch it works but together Pipeline goes :

    


    Pipeline state changed from Null to Ready
Pipeline state changed from Ready to Paused


    


    and stays there never switches to Playing

    


    gst-launch-1.0 with similar functionality works well.

    


        gst::Element::link_many(&[&pw_video, &v_caps, &vid_queuey, &vid_tee]).unwrap();
    gst::Element::link_many(&[&vid_queue1, &autovideoconvert, &vid_queuex, &autovideosink]).unwrap();
    gst::Element::link_many(&[&vid_queue2, &autovideoconvert_x264, &vid_queue3, &x264, &vid_queue4, &fake]).unwrap();

    let tee_display_pad = vid_tee.request_pad_simple("src_10").unwrap();
    let vid_queue1_pad = vid_queue1.static_pad("sink").unwrap();

    tee_display_pad.link(&vid_queue1_pad).unwrap();

    let tee_convert_pad = vid_tee.request_pad_simple("src_20").unwrap();
    let vid_queue2_pad = vid_queue2.static_pad("sink").unwrap();

    tee_convert_pad.link(&vid_queue2_pad).unwrap();


    


    How can I use tee in rust properly to have playable pipeline with two branches ?

    


    Update : I read some posts about increasing queue size, so I tried for this and then all queues :

    


        let vid_queue1 = gst::ElementFactory::make("queue")
        .name("queue1")
        .property("max-size-buffers", 5000 as u32)
        .property("max-size-bytes", 1048576000 as u32)
        .property("max-size-time", 60000000000 as u64)
        .build()
        .expect("queue1");


    


    but it didn't help so I tried set zero latency :

    


        let x264 = gst::ElementFactory::make("x264enc")
        .name("x264")
        .property_from_str("speed-preset", "ultrafast")
        .property_from_str("pass", "qual")
        .property_from_str("tune", "zerolatency")
        .property("quantizer", 0 as u32)
        .property("threads", 8 as u32)
        .build()
        .expect("!x264");


    


    and it works now. But comparable gst-launch-1.0 settings didn't had such option - only queues sizes increased.

    


    Is there any other option than setting zerolatency ?

    


  • Parse dynamic mpd file with Media Source Extensions

    17 février 2023, par FrankC

    I just started learning about adaptive streaming, and currently I'm working on a project that needs showing a live video. In order to control some of the elements in mpd file, I determined to use MSE instead of dash.js. I refer to the code at the following URL :https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/samples/dn551368(v=vs.85)
But I found out that there is no "Initialization" tag or "range" attribute in my mpd file. I don't find any relative attribute as well. By the way I'm use nginx-rtmp + ffmpeg to generate dash file.
So here is my dash file looks like

    


    &lt;?xml version="1.0"?>&#xA; &#xA;  <period start="PT0S">&#xA;    &#xA;      &#xA;        &#xA;          <segmenttimeline>&#xA;             <s t="0" d="10000"></s>&#xA;             <s t="10000" d="10000"></s>&#xA;             <s t="20000" d="5000"></s>&#xA;             <s t="25000" d="10000"></s>&#xA;          </segmenttimeline>&#xA;        &#xA;      &#xA;    &#xA;  </period>&#xA;&#xA;

    &#xA;

    My question is :&#xA;1.Did I have any missing parameters in using ffmpeg or nginx-rtmp resulting in losting tag in mpd file ?&#xA;2.Or there is other way to setup "Initialization"/"range" attribute and let my program work ?&#xA;3.I also curious about why my mpd file doesn't have a baseURL element ?

    &#xA;

    ※My mpd file works fine with dash.js, I can see the video properly

    &#xA;

    THANKS A LOT

    &#xA;

  • I want to record my computer screen and stream it to other computer browser over same network

    25 décembre 2022, par Abdullah Qasim

    I am using Flask for this purpose. I wanted to create a rtmp server that stream the screen in web browser.

    &#xA;

    My Python Code is :

    &#xA;

    import os&#xA;import subprocess&#xA;&#xA;from flask import Flask, render_template&#xA;&#xA;app = Flask(__name__)&#xA;&#xA;@app.route(&#x27;/&#x27;)&#xA;def index():&#xA;    return render_template(&#x27;index.html&#x27;)&#xA;&#xA;if __name__ == &#x27;__main__&#x27;:&#xA;    # Start the RTMP server in a separate process&#xA;    subprocess.Popen([&#x27;ffmpeg&#x27;, &#x27;-f&#x27;, &#x27;gdigrab&#x27;, &#x27;-framerate&#x27;, &#x27;25&#x27;, &#x27;-probesize&#x27;, &#x27;100000000000&#x27;, &#x27;-i&#x27;, &#x27;desktop&#x27;, &#x27;-vcodec&#x27;, &#x27;libx264&#x27;, &#x27;-preset&#x27;, &#x27;ultrafast&#x27;, &#x27;-tune&#x27;, &#x27;zerolatency&#x27;, &#x27;-f&#x27;, &#x27;flv&#x27;, &#x27;rtmp://localhost:5000/live/stream_name&#x27;])&#xA;&#xA;    # Start the Flask app&#xA;    app.run()&#xA;&#xA;

    &#xA;

    My HTML code is :

    &#xA;

    &#xA;  &#xA;    &#xA;    &#xA;    <code class="echappe-js">&lt;script src=&quot;https://unpkg.com/video.js/dist/video.js&quot;&gt;&lt;/script&gt;&#xA;  &#xA;  &#xA;    &#xA;    &lt;script&gt;&amp;#xA;      var player = videojs(&amp;#x27;my-video&amp;#x27;);&amp;#xA;    &lt;/script&gt;&#xA;  &#xA;&#xA;&#xA;

    &#xA;

    When I run the flask app it produces an error :

    &#xA;

    * Serving Flask app &#x27;server&#x27; (lazy loading)&#xA; * Environment: production&#xA;   WARNING: This is a development server. Do not use it in a production deployment.&#xA;   Use a production WSGI server instead.&#xA; * Debug mode: off&#xA;ffmpeg version N-109449-gb92260f70a-20221223 Copyright (c) 2000-2022 the FFmpeg developers&#xA;  built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)&#xA;  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20221223&#xA;  libavutil      57. 43.100 / 57. 43.100&#xA;  libavcodec     59. 55.103 / 59. 55.103&#xA;  libavformat    59. 34.102 / 59. 34.102&#xA;  libavdevice    59.  8.101 / 59.  8.101&#xA;  libavfilter     8. 53.100 /  8. 53.100&#xA;  libswscale      6.  8.112 /  6.  8.112&#xA;  libswresample   4.  9.100 /  4.  9.100&#xA;  libpostproc    56.  7.100 / 56.  7.100&#xA; * Running on http://127.0.0.1:5000/ (Press CTRL&#x2B;C to quit)&#xA;[gdigrab @ 00000134692d9cc0] Capturing whole desktop as 1280x1024x32 at (0,0)&#xA;Input #0, gdigrab, from &#x27;desktop&#x27;:&#xA;  Duration: N/A, start: 1671986678.012939, bitrate: 1048586 kb/s&#xA;  Stream #0:0: Video: bmp, bgra, 1280x1024, 1048586 kb/s, 25 fps, 25.08 tbr, 1000k tbn&#xA;127.0.0.1 - - [25/Dec/2022 21:44:39] code 400, message Bad request version (&#x27;&#xFB;\x9be&#xF9;S&#xD8;H&#xE3;Eie&#xD0;&#xD7;kbz\x84&#xE3;^\x9d&#xDA;&#xBD;\x8bC&#xF0;&#xFA;&#xDA;&#xEE;E\x8c&#xDF;Y&#xEB;&#xD7;s\x92.&#x27;)&#xA;127.0.0.1 - - [25/Dec/2022 21:44:39] "♥ |☻&#xF7;xU▲&#xCE;&#xAB;▲6/&#xC5;p&#xB2;f&#xD4;☻ a↑&#xA2;.6&#xD5;&#xFC;&#x2B;c)&#xC2;.&#xE7;&#xC7;&#xC9;&#xB0;&#xB5;&#xB3;E&#xDF;&#xA8;9&#xEA;;&#xC8;y ►hBZ&#xA1;↨L&#xB5;rX&#xCF;&#xEB;&#xE2;M&#xA4;.&#xC4;&#xFF;{@o↑&#xC9;[&#xFD;&#xD0;N&#xE4;o2&#xB6;&#xA4;{&#xF6;&#xB0;RT&#xE2;Z&#xE9;&#xA9;&#xA8;&#xB4;&#xC5;Ion&#xD7;&#xC6;&#xB6;&#xBC;&#xC8;Ai&#xE6;>7/&#xFE;↑m&#xA8;Q8b&#xC5;&#xAF;&#xDE;&#xB5;&#xA1;!w&#xE2;&#xD9;&#xE2;&#xC4;t&#xB1;&#xF5;&#xA7;&#xF0;&#xB2; &#xAE;&#xA;      &#xB7;&#xD7;&#xAB;2&#xF9;&#xF0;T&#xAB;{                   &#xFD;?&#xF2;&#xB8;&#xF6;$&#xAC;p&#xF2;p&#xF3;w4&#xEA;&#xF1;Of&#xAC;=d&#xE2;2♣D&#xA4;B                            &#xA4;↓▲&#xF4;m&lt;&#xB7;-/"C&#xD1;u*A&amp;2&#xD6;j u&#xF5;&#xD3;☻&#xF4;\&#xDF;&#x2B;&#xC5;&#xA7;&#xAB;&#xF8;↑1☺&#xCE;&#xA6;&#xFA;&#xEC;\y&#xAA;~&#xC7;↑▲&#xA4;Y&#xED;n&#xA;e&#xEE;&#xD4;ioP&#xFE;♣&#xFC; M&#xC3;&#xAD;▲^&#xF4;&#xFC;d&#xD5;{∟&#xB6;&#xB6;jE▼j♦1V&#xD2;YW&#xD7;▼&#xA9;&#xC0;&#xF1;_K|&#xF7;&#xB6;&#xC3;}&#xA6;  ↑a↔;☻&#xFF;|&#xC9;@8u7&#xD3;8.Ak&#xD5;uwM&#xF9;&#xCA;&#xF7;H5!P&#xCE;&#xD0;&#xDB;&#xB4;▼&#xC3;d&#xE1;~5i&#xE3;&#xA;▬e&#xA;&#xFB;&#xF9;S&#xD8;H&#xE3;Eie&#xD0;&#xD7;kbz&#xA;              &#xE3;^C&#xF0;&#xFA;&#xDA;&#xEE;E&#xDF;Y&#xEB;&#xD7;s." 400 -&#xA;[rtmp @ 000001346ae35180] Cannot read RTMP handshake response&#xA;rtmp://localhost:5000/live/stream_name: End of file&#xA;

    &#xA;

    I have searched on internet to fix this error but did not got any help.

    &#xA;