Recherche avancée

Médias (91)

Autres articles (78)

  • 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

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • Diogene : création de masques spécifiques de formulaires d’édition de contenus

    26 octobre 2010, par

    Diogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
    A quoi sert ce plugin
    Création de masques de formulaires
    Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
    Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)

Sur d’autres sites (7668)

  • How to display multiple rtmp streams from Gryphon nginx ?

    22 août 2018, par LoukMo

    CONTEXT :

    -I received a rtsp stream link from an onvif ip camera.

    -The camera can only host 5 streaming connection at a time (I want/need more connections).

    -I’ve been informed that a combination of ffmpeg (to convert the rtsp stream to rtmp) and nginx (to redistribute as many streams as I want) would do what I want.

    -I’m on Windows 10.

    -I downloaded ffmpeg from this source and nginx from this source (nginx 1.7.11.3 Gryphon.zip).

    -Here’s the conf file of the nginx server :

    user nobody;
    worker_processes 1;

    events {
     worker_connections  1024;
    }

    rtmp {
           server {
                   listen 1935;
                   chunk_size 4096;

                   application live {
                           live on;
                           record off;
                   }
           }
    }

    -I’m using this command to push my camera’s stream to the nginx server :

    ffmpeg -hide_banner -i "rtsp://user:password123@192.168.10.116:554/videoMain" -an -f flv -rtmp_live live "rtmp://127.0.0.1:1935/live"

    -I can then see the output stream using vlc’s open network stream tool (rtmp ://127.0.0.1:1935/live)

    QUESTION :

    Is there a way to have multiple input/outout streams at the same time ?

    I want to have multiple cameras redirected at the same time by one server...

    enter image description here

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

  • Show portrait video to landscape on Videojs player as HLS ffmpeg Laravel

    11 décembre 2020, par TwistCode

    I am currently using the ffmpeg library through laravel sdk. For the landscape videos I have no problem with the scaling filters application, but with the portrait videos I need the video to look like the thumbnail below :

    &#xA;

    enter image description here

    &#xA;

    But when I play the video, the player is distorted.

    &#xA;

    enter image description here

    &#xA;

    Note : It should be noted that when I work with horizontal scales, the player looks good, but the video is distorted.

    &#xA;

    enter image description here

    &#xA;

    enter image description here

    &#xA;

    this is my PHP Laravel code implementation

    &#xA;

                FFMpeg::FromDisk(&#x27;local&#x27;)->open($this->media)&#xA;            ->exportForHLS()&#xA;            ->setSegmentLength(6) // optional&#xA;            /*&#xA;            ->addFormat($lowBitrate, function ($media) {&#xA;                $media->addFilter(function ($filters, $in, $out) {&#xA;                    $filters->custom($in, &#x27;scale=854x480,setsar=1,setdar=16:9&#x27;, $out); // $in, $parameters, $out&#xA;&#xA;                });&#xA;            })*/&#xA;            // Portrait test&#xA;            ->addFormat($lowBitrate, function ($media) { &#xA;                $media->addFilter(function ($filters, $in, $out) {&#xA;                    // $filters->custom($in, "scale=&#x27;w=min(720,trunc((480*33/40*dar)/2&#x2B;0.5)*2):h=min(480,trunc((704*40/33/dar)/2&#x2B;0.5)*2)&#x27;,pad=&#x27;w=720:h=480:x=(ow-iw)/2:y=(oh-ih)/2&#x27;,setsar=&#x27;r=40/33&#x27;", $out); // $in, $parameters, $out&#xA;                    $filters->custom($in, "scale=239:-1", $out); // $in, $parameters, $out&#xA;                });&#xA;            })&#xA;            /*&#xA;            ->addFormat($midBitrate, function ($media) {&#xA;                $media->scale(1280, 720);&#xA;            })&#xA;            ->addFormat($highBitrate, function ($media) {&#xA;                $media->scale(1920, 1080);&#xA;            })*/&#xA;            ->save("public/hls/$video->id/$video->hash_name.m3u8");&#xA;

    &#xA;

    This is the command that runs at the server level for portrait videos.

    &#xA;

    &#xA;

    [2020-12-10 17:48:17] local.INFO : ffmpeg running command&#xA;'/usr/bin/ffmpeg' '-y' '-threads' '12' '-i'&#xA;'/home/vagrant/homesteadprojects/maquillate/storage/app/videos_directory/pexels-cottonbro-6054875.mp4'&#xA;'-filter_complex' '[0]scale=640 :-2[v0]' '-map' '[v0]' '-vcodec'&#xA;'libx264' '-b:v' '1200k' '-g' '48' '-hls_playlist_type' 'vod'&#xA;'-hls_time' '6' '-hls_segment_filename'&#xA;'/home/vagrant/homesteadprojects/maquillate/storage/app/public/hls/35/NXp9waz4AO5Q14Lu6T3JbjSRY496RrtiPGIz6IOJ_0_1200_%05d.ts'&#xA;'-acodec' 'aac' '-b:a' '128k'&#xA;'/home/vagrant/homesteadprojects/maquillate/storage/app/public/hls/35/NXp9waz4AO5Q14Lu6T3JbjSRY496RrtiPGIz6IOJ_0_1200.m3u8'

    &#xA;

    &#xA;

    I don't really know if my problem is at the server or frontend level, but I would greatly appreciate any contribution.

    &#xA;