
Recherche avancée
Autres articles (78)
-
Publier sur MédiaSpip
13 juin 2013Puis-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, parEn 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, parDiogene 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 LoukMoCONTEXT :
-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...
-
Setting up RTP on Nginx
2 février 2021, par SwapI'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 -




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


{
 "request" : "rtp_forward",
 "room" : <unique numeric="numeric" of="of" the="the" room="room" publisher="publisher" is="is" in="in">,
 "publisher_id" : <unique numeric="numeric" of="of" the="the" publisher="publisher" to="to" relay="relay" externally="externally">,
 "host" : "<host address="address" to="to" forward="forward" the="the" rtp="rtp" and="and" packets="packets">",
 "host_family" : "",
 "audio_port" : <port to="to" forward="forward" the="the" audio="audio" rtp="rtp" packets="packets">,
 "audio_ssrc" : <audio ssrc="ssrc" to="to" use="use" when="when" optional="optional">,
 "audio_pt" : <audio payload="payload" type="type" to="to" use="use" when="when" optional="optional">,
 "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">,
 "video_port" : <port to="to" forward="forward" the="the" video="video" rtp="rtp" packets="packets">,
 "video_ssrc" : <video ssrc="ssrc" to="to" use="use" when="when" optional="optional">,
 "video_pt" : <video payload="payload" type="type" to="to" use="use" when="when" optional="optional">,
 "video_rtcp_port" : <port to="to" contact="contact" receive="receive" video="video" rtcp="rtcp" feedback="feedback" from="from" the="the" optional="optional">,
 "simulcast" : ,
 "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>,
 "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>,
 "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>,
 "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>,
 "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>,
 "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>,
 "data_port" : <port to="to" forward="forward" the="the" messages="messages">,
 "srtp_suite" : <length of="of" authentication="authentication" tag="tag" or="or" optional="optional">,
 "srtp_crypto" : "<key to="to" use="use" as="as" crypto="crypto" encoded="encoded" key="key" in="in" optional="optional">"
}
</key></length></port></port></video></video></port></port></audio></audio></port></host></unique></unique>


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


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


-
Show portrait video to landscape on Videojs player as HLS ffmpeg Laravel
11 décembre 2020, par TwistCodeI 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 :




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




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






this is my PHP Laravel code implementation


FFMpeg::FromDisk('local')->open($this->media)
 ->exportForHLS()
 ->setSegmentLength(6) // optional
 /*
 ->addFormat($lowBitrate, function ($media) {
 $media->addFilter(function ($filters, $in, $out) {
 $filters->custom($in, 'scale=854x480,setsar=1,setdar=16:9', $out); // $in, $parameters, $out

 });
 })*/
 // Portrait test
 ->addFormat($lowBitrate, function ($media) { 
 $media->addFilter(function ($filters, $in, $out) {
 // $filters->custom($in, "scale='w=min(720,trunc((480*33/40*dar)/2+0.5)*2):h=min(480,trunc((704*40/33/dar)/2+0.5)*2)',pad='w=720:h=480:x=(ow-iw)/2:y=(oh-ih)/2',setsar='r=40/33'", $out); // $in, $parameters, $out
 $filters->custom($in, "scale=239:-1", $out); // $in, $parameters, $out
 });
 })
 /*
 ->addFormat($midBitrate, function ($media) {
 $media->scale(1280, 720);
 })
 ->addFormat($highBitrate, function ($media) {
 $media->scale(1920, 1080);
 })*/
 ->save("public/hls/$video->id/$video->hash_name.m3u8");



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




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




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