Recherche avancée

Médias (0)

Mot : - Tags -/organisation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (35)

  • 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

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (6589)

  • how to use the pts in ffmpeg

    11 octobre 2023, par Allan

    I have a library with can provide video data and PTS. The library head file Like this:

    



     /**
 * \brief           Write mirror video H.264 frame to player.
 * \param p_src     Pointer to source buffer.
 * \param size      H.264 frame size. (unit: byte)
 * \param ptsValue  PTS value.
 * \return          Copied size. (unit: byte)
 */
int (*WriteMirrorVideoData)(const std::string& ip, const void *p_src, int size, double ptsValue);


    



    As you see, the library give me video frame buffer address and PTS.

    



    I use FFMpeg to decode video data correctly.

    



    My question is how to control the display time by ptsValue which provided by library.

    



    Did I need to set the ptsValue to AVFrame ? then FFMPeg can control the display time itself.
Or I need to control the display by my own code ?

    



    I am a newer to FFMpeg. please help me. Thank you very much !

    


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

  • Cannot open connection tcp ://localhost:1935 when to set up custom RTMP stream server

    8 janvier 2021, par showkey

    My simple network is as following :

    &#xA;

    192.168.31.52 is my local pc &#xA;192.168.31.251 is an ip camera.&#xA;

    &#xA;

    I can open the stream rtsp://192.168.31.251/cam/realmonitor?channel=1&amp;subtype=0 with SMPlayer.
    &#xA;Build my nginx for customizing RTMP stream this way.

    &#xA;

    sudo apt update&#xA;sudo apt install build-essential git&#xA;sudo apt install libpcre3-dev libssl-dev zlib1g-dev &#xA;git clone https://github.com/arut/nginx-rtmp-module.git&#xA;git clone https://github.com/nginx/nginx.git&#xA;cd nginx&#xA;./auto/configure --add-module=../nginx-rtmp-module&#xA;make&#xA;sudo make install&#xA;

    &#xA;

    Set config file for nginx :

    &#xA;

    sudo vim /usr/local/nginx/conf/nginx.conf&#xA;rtmp { &#xA;    server { &#xA;        listen 1935; &#xA;        application live { &#xA;            live on; &#xA;            interleave on;&#xA; &#xA;            hls on; &#xA;            hls_path /tmp/hls; &#xA;            hls_fragment 15s; &#xA;        } &#xA;    } &#xA;} &#xA;

    &#xA;

    Then set permission for nginx :

    &#xA;

    mkdir /tmp/hls&#xA;sudo chmod -R 755  /tmp/hls&#xA;sudo chown -R www-data:www-data  /tmp/hls&#xA;

    &#xA;

    Edit index.html in /tmp/hls.

    &#xA;

    <p>test for nginx</p>&#xA;

    &#xA;

    Both 127.0.0.1/index.html and 192.168.31.52/index.html can open the /tmp/hls/index.html.

    &#xA;

    Now open port 1935 on my network :

    &#xA;

    sudo firewall-cmd --zone=public --add-port=1935/tcp --permanent&#xA;sudo firewall-cmd --reload &#xA;sudo firewall-cmd --list-ports | grep 1935&#xA;1935/tcp&#xA;

    &#xA;

    Start nginx :

    &#xA;

    sudo systemctl start nginx&#xA;

    &#xA;

    Up stream the rtsp stream from ip camera—192.168.31.251 to local pc —192.168.31.52.

    &#xA;

    input="rtsp://192.168.31.251/cam/realmonitor?channel=1&amp;subtype=0"&#xA;output="rtmp://192.168.31.52:1935/live/sample"&#xA;ffmpeg -i $input -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv $output&#xA;

    &#xA;

    It encounter the following errors :

    &#xA;

    [tcp @ 0x59fb700] Connection to tcp://192.168.31.52:1935 failed: Connection refused&#xA;[rtmp @ 0x59fc5c0] Cannot open connection tcp://192.168.31.52:1935&#xA;rtmp://192.168.31.52:1935/live/sample: Connection refused&#xA;

    &#xA;

    To keep the issue simple,i replace $input with a mp4 file in local pc,same error info.
    &#xA;How can fix it ?
    &#xA;Ping my machine :

    &#xA;

    ping 192.168.31.52&#xA;PING 192.168.31.52 (192.168.31.52): 56 data bytes&#xA;64 bytes from 192.168.31.52: icmp_seq=0 ttl=64 time=0.108 ms&#xA;64 bytes from 192.168.31.52: icmp_seq=1 ttl=64 time=0.107 ms&#xA;64 bytes from 192.168.31.52: icmp_seq=2 ttl=64 time=0.111 ms&#xA;

    &#xA;

    Why the port 1935 not opened,i had restarted nginx after setting ?

    &#xA;

    sudo lsof -i:1935&#xA;#nothing in the output&#xA;netstat -ltn&#xA;Active Internet connections (only servers)&#xA;Proto Recv-Q Send-Q Local Address           Foreign Address         State      &#xA;tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     &#xA;tcp        0      0 0.0.0.0:51413           0.0.0.0:*               LISTEN     &#xA;tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     &#xA;tcp        0      0 127.0.0.1:1080          0.0.0.0:*               LISTEN     &#xA;tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     &#xA;tcp        0      0 127.0.0.1:8123          0.0.0.0:*               LISTEN     &#xA;tcp        0      0 127.0.0.1:8384          0.0.0.0:*               LISTEN     &#xA;tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN     &#xA;tcp6       0      0 :::3306                 :::*                    LISTEN     &#xA;tcp6       0      0 :::80                   :::*                    LISTEN     &#xA;tcp6       0      0 :::22000                :::*                    LISTEN     &#xA;tcp6       0      0 :::51413                :::*                    LISTEN     &#xA;tcp6       0      0 :::21                   :::*                    LISTEN     &#xA;tcp6       0      0 :::22                   :::*                    LISTEN     &#xA;tcp6       0      0 ::1:25                  :::*                    LISTEN     &#xA;tcp6       0      0 :::2681                 :::*                    LISTEN  &#xA;

    &#xA;

    Firewall command can't work :

    &#xA;

    sudo firewall-cmd --zone=public --add-port=1935/tcp --permanent&#xA;sudo firewall-cmd --reload &#xA;

    &#xA;

    My nginx version :

    &#xA;

    sudo nginx -v&#xA;nginx version: nginx/1.10.3&#xA;

    &#xA;