Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (108)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (11264)

  • Setting up RTP on Nginx

    2 février 2021, par Swap

    I'm trying to use Janus Media Server to relay WebRTC streams to a particular RTP host/port, from where ffmpeg can pick it up as an input and convert it further to an rtmp stream, which can then be used to broadcast to various social media platforms (such as, YouTube, Twitch, Facebook, etc.)

    


    My inspiration for this has been the following blog - https://www.meetecho.com/blog/firefox-webrtc-youtube-kinda/

    


    Specifically, I'm trying to replicate the following architecture -

    


    architecture

    


    And Janus, as per their documentation, has a very neat API for doing it -

    


    {&#xA;    "request" : "rtp_forward",&#xA;    "room" : <unique numeric="numeric" of="of" the="the" room="room" publisher="publisher" is="is" in="in">,&#xA;    "publisher_id" : <unique numeric="numeric" of="of" the="the" publisher="publisher" to="to" relay="relay" externally="externally">,&#xA;    "host" : "<host address="address" to="to" forward="forward" the="the" rtp="rtp" and="and" packets="packets">",&#xA;    "host_family" : "",&#xA;    "audio_port" : <port to="to" forward="forward" the="the" audio="audio" rtp="rtp" packets="packets">,&#xA;    "audio_ssrc" : <audio ssrc="ssrc" to="to" use="use" when="when" optional="optional">,&#xA;    "audio_pt" : <audio payload="payload" type="type" to="to" use="use" when="when" optional="optional">,&#xA;    "audio_rtcp_port" : <port to="to" contact="contact" receive="receive" audio="audio" rtcp="rtcp" feedback="feedback" from="from" the="the" and="and" currently="currently" unused="unused" for="for">,&#xA;    "video_port" : <port to="to" forward="forward" the="the" video="video" rtp="rtp" packets="packets">,&#xA;    "video_ssrc" : <video ssrc="ssrc" to="to" use="use" when="when" optional="optional">,&#xA;    "video_pt" : <video payload="payload" type="type" to="to" use="use" when="when" optional="optional">,&#xA;    "video_rtcp_port" : <port to="to" contact="contact" receive="receive" video="video" rtcp="rtcp" feedback="feedback" from="from" the="the" optional="optional">,&#xA;    "simulcast" : ,&#xA;    "video_port_2" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" port="port" to="to" forward="forward" the="the" video="video" rtp="rtp" packets="packets" from="from" second="second" substream="substream"></if>layer to>,&#xA;    "video_ssrc_2" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" video="video" ssrc="ssrc" to="to" use="use" the="the" second="second" substream="substream"></if>layer; optional>,&#xA;    "video_pt_2" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" video="video" payload="payload" type="type" to="to" use="use" the="the" second="second" substream="substream"></if>layer; optional>,&#xA;    "video_port_3" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" port="port" to="to" forward="forward" the="the" video="video" rtp="rtp" packets="packets" from="from" third="third" substream="substream"></if>layer to>,&#xA;    "video_ssrc_3" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" video="video" ssrc="ssrc" to="to" use="use" the="the" third="third" substream="substream"></if>layer; optional>,&#xA;    "video_pt_3" : <if simulcasting="simulcasting" and="and" forwarding="forwarding" each="each" video="video" payload="payload" type="type" to="to" use="use" the="the" third="third" substream="substream"></if>layer; optional>,&#xA;    "data_port" : <port to="to" forward="forward" the="the" messages="messages">,&#xA;    "srtp_suite" : <length of="of" authentication="authentication" tag="tag" or="or" optional="optional">,&#xA;    "srtp_crypto" : "<key to="to" use="use" as="as" crypto="crypto" encoded="encoded" key="key" in="in" optional="optional">"&#xA;}&#xA;</key></length></port></port></video></video></port></port></audio></audio></port></host></unique></unique>

    &#xA;

    For this, I've setup a Nginx server, where I've also installed Janus and everything's been running smoothly so far. But I'm quite clueless as to how to setup my Nginx server so that it accepts RTP connections (which will be forwarded as RTMP using ffmpeg).

    &#xA;

    Please guide me to any relevant resources that would help me achieve this. Thanks in advance !

    &#xA;

  • ffmpeg-php loading videos but not generating jpeg (thumbnails)

    16 mars 2021, par Ali Hamdar

    The website is now running on :&#xA;finlandbooking.online

    &#xA;

    Sorry for this noob question first of all.&#xA;This is a social media script, when you upload a video, it shows a black thumbnail - you can play the video, but the thumbnail is black. I checked the issue with developers tools, it seems that it's showing error 404 - image not found. ffmpeg, as far as I understood, is supposed to generate an image and display it as a thumbnail. The image is supposed to be located in /uploads/images/ - Kindly check this part of the code and let me know why it's not working :

    &#xA;

    else if ($action == &#x27;upload_post_video&#x27;) {&#xA;if (empty($cl["is_logged"])) {&#xA;    $data[&#x27;status&#x27;] = 400;&#xA;    $data[&#x27;error&#x27;]  = &#x27;Invalid access token&#x27;;&#xA;}&#xA;else {&#xA;    $data[&#x27;err_code&#x27;] = "invalid_req_data";&#xA;    $data[&#x27;status&#x27;]   = 400;&#xA;    $post_data        = $me[&#x27;draft_post&#x27;];&#xA;&#xA;    if (not_empty($_FILES[&#x27;video&#x27;]) &amp;&amp; not_empty($_FILES[&#x27;video&#x27;][&#x27;tmp_name&#x27;])) {&#xA;        if (empty($post_data)) {&#xA;            $post_id   = cl_create_orphan_post($me[&#x27;id&#x27;], "video");&#xA;            $post_data = cl_get_orphan_post($post_id);&#xA;&#xA;            cl_update_user_data($me[&#x27;id&#x27;],array(&#xA;                &#x27;last_post&#x27; => $post_id&#xA;            ));&#xA;        }&#xA;&#xA;        if (not_empty($post_data) &amp;&amp; $post_data["type"] == "video") {&#xA;            if (empty($post_data[&#x27;media&#x27;])) {&#xA;                $file_info      =  array(&#xA;                    &#x27;file&#x27;      => $_FILES[&#x27;video&#x27;][&#x27;tmp_name&#x27;],&#xA;                    &#x27;size&#x27;      => $_FILES[&#x27;video&#x27;][&#x27;size&#x27;],&#xA;                    &#x27;name&#x27;      => $_FILES[&#x27;video&#x27;][&#x27;name&#x27;],&#xA;                    &#x27;type&#x27;      => $_FILES[&#x27;video&#x27;][&#x27;type&#x27;],&#xA;                    &#x27;file_type&#x27; => &#x27;video&#x27;,&#xA;                    &#x27;folder&#x27;    => &#x27;videos&#x27;,&#xA;                    &#x27;slug&#x27;      => &#x27;original&#x27;,&#xA;                    &#x27;allowed&#x27;   => &#x27;mp4,mov,3gp,webm&#x27;,&#xA;                );&#xA;&#xA;                $file_upload = cl_upload($file_info);&#xA;                $upload_fail = false;&#xA;                $post_id     = $post_data[&#x27;id&#x27;];&#xA;&#xA;                if (not_empty($file_upload[&#x27;filename&#x27;])) {&#xA;                    try {&#xA;                        require_once(cl_full_path("core/libs/ffmpeg-php/vendor/autoload.php"));&#xA;&#xA;                        $ffmpeg         =  new FFmpeg(cl_full_path($config[&#x27;ffmpeg_binary&#x27;]));&#xA;                        $thumb_path     =  cl_gen_path(array(&#xA;                            "folder"    => "images",&#xA;                            "file_ext"  => "jpeg",&#xA;                            "file_type" => "image",&#xA;                            "slug"      => "poster",&#xA;                        ));&#xA;&#xA;                        $ffmpeg->input($file_upload[&#x27;filename&#x27;]);&#xA;                        $ffmpeg->set(&#x27;-ss&#x27;,&#x27;3&#x27;);&#xA;                        $ffmpeg->set(&#x27;-vframes&#x27;,&#x27;1&#x27;);&#xA;                        $ffmpeg->set(&#x27;-f&#x27;,&#x27;mjpeg&#x27;);&#xA;                        $ffmpeg->output($thumb_path)->ready();&#xA;                    } &#xA;&#xA;                    catch (Exception $e) {&#xA;                        $upload_fail = true;&#xA;                    }&#xA;&#xA;                    if (empty($upload_fail)) {&#xA;                        $img_id      =  $db->insert(T_PUBMEDIA, array(&#xA;                            "pub_id" => $post_id,&#xA;                            "type"   => "video",&#xA;                            "src"    => $file_upload[&#x27;filename&#x27;],&#xA;                            "time"   => time(),&#xA;                            "json_data" => json(array(&#xA;                                "poster_thumb" => $thumb_path&#xA;                            ),true)&#xA;                        ));&#xA;&#xA;                        if (is_posnum($img_id)) {&#xA;                            $data[&#x27;status&#x27;] =  200;&#xA;                            $data[&#x27;video&#x27;]  =  array(&#xA;                                "source"    => cl_get_media($file_upload[&#x27;filename&#x27;]),&#xA;                                "poster"    => cl_get_media($thumb_path),&#xA;                            );&#xA;                        }&#xA;                    }&#xA;                }&#xA;            }&#xA;            else {&#xA;                $data[&#x27;err_code&#x27;] = "total_limit_exceeded";&#xA;                $data[&#x27;status&#x27;]   = 400;&#xA;            }&#xA;        }&#xA;        else {&#xA;            cl_delete_orphan_posts($me[&#x27;id&#x27;]);&#xA;            cl_update_user_data($me[&#x27;id&#x27;],array(&#xA;                &#x27;last_post&#x27; => 0&#xA;            ));&#xA;        }&#xA;    }&#xA;}&#xA;

    &#xA;

    }

    &#xA;

  • How to get your Piwik plugin translated in many languages ?

    8 septembre 2015, par Stefan Giehl — Community, Development, Plugins

    About a year ago we introduced the Piwik Marketplace to make it easy for developers to share their plugins with all Piwik users.

    As Piwik is currently available in 54 languages we would love to have as many plugins as possible available in at least a few of those languages.

    Currently most plugins on the Marketplace are only available in English and sometimes some other languages. To improve this situation, we offer plugin developers the possibility to use the power of our translators community to get their plugins translated.

    Some plugin developers are already using this service and some very popular plugins like BotTracker or CustomOptOut have already been translated in more than 10 languages !

    Getting translations for your plugin

    As long as you are developing an open source plugin hosted on Github, you may get in touch with us (translations@piwik.org) in order to get your plugin translated by the Piwik translators community.

    You will need an account on Transifex.com. If you use Transifex with a social login, please ensure to set a password in your account settings. This will be required for fetching new translations into your plugin repository.

    Importing your plugin’s strings in the translation platform

    While doing the initial setup for your plugin, we will import your english translation file (en.json) in your Github plugin repository and we will configure an auto-update for this file. Source strings on Transifex will automatically synchronise with your plugin repository. When you change any string in your en.json translation file, the updated English strings will automatically be imported in Transifex.

    How to fetch your plugins translations into your repository

    As soon as we have set up your plugin within our Piwik project on Transifex and there are new translations available, you will be able to update your plugin translations using the Piwik console. You will need a locally installed Piwik with development mode enabled, and your plugin installed. To update the translations go to the Piwik directory on your development box and execute the following command :

    ./console translations:update -u {YourTransifexUserName} -p {YourTransifexPassword} -P {YourPluginName}

    We are looking forward to seeing your Piwik plugins available in more languages ! For more information, check out our Translations plugin developer guide.

    Happy hacking,