
Recherche avancée
Autres articles (77)
-
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 à (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (8804)
-
Web socket disconnects early when ffmpeg finishes proccess
26 septembre 2022, par seriouslyI am using ffmpeg to stream an mp4 video to an rtmp server then display in on the front end using websocket and the process works fine. The problem i'm having is once the video nears its end the web socket connection on the front end disconnects and video stops playing. This is happening because ffmpeg has finished pushing the stream but not all frames are displayed on the front end yet because of stream lag. How can I keep the web socket from disconnecting when ffmpeg finishes streaming so that the full video will be played ? Thanks in advance.




const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const fluent = require('fluent-ffmpeg');
fluent.setFfmpegPath(ffmpegPath);

const executeFfmpeg = args => {
 let command = fluent().output(' '); // pass "Invalid output" validation
 command._outputs[0].isFile = false; // disable adding "-y" argument
 command._outputs[0].target = ""; // bypass "Unable to find a suitable output format for ' '"
 command._global.get = () => { // append custom arguments
 return typeof args === "string" ? args.split(' ') : args;
 };
 return command;
};

function streamVideo() {
 executeFfmpeg(`-re -i ${path.join(__dirname, '..', 'test.mp4')} -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -ar 44100 -f flv rtmp://localhost:PORT/live/test`)
 .on('start', commandLine => console.log('start', commandLine))
 .on('codecData', codecData => console.log('codecData', codecData))
 .on('error', error => console.log('error', error))
 .on('stderr', stderr => console.log('error', error))
 .on('end', commandLine => console.log('video_live end', commandLine))
 .run();
}

streamVideo()


<code class="echappe-js"><script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>




<script>&#xA; if (flvjs.isSupported()) {&#xA; var streamElement = document.getElementById(&#x27;streamElement&#x27;);&#xA; var flvPlayer = flvjs.createPlayer({&#xA; type: &#x27;flv&#x27;,&#xA; url: &#x27;ws://localhost:PORT/live/test.flv&#x27;&#xA; });&#xA; flvPlayer.attachMediaElement(streamElement);&#xA; flvPlayer.load();&#xA; flvPlayer.play();&#xA; }&#xA;</script>







The node media server module starts an rtmp, http and web socket server.




const NodeMediaServer = require('node-media-server');

const config = {
 rtmp: {
 port: 1935,
 chunk_size: 60000,
 gop_cache: true,
 ping: 30,
 ping_timeout: 60
 },
 http: {
 port: 8000,
 allow_origin: '*'
 }
};

var nms = new NodeMediaServer(config)
nms.run();







-
Revision 73452 : Si pas de durée (ancien document en base avant spipmotion), on refait une ...
10 juin 2013, par kent1@… — LogSi pas de durée (ancien document en base avant spipmotion), on refait une récupération des metas avant de créer une vignette
Une condition manquante sur la rotation créait des images dans le mauvais sens
Une chaîne de langue manquante -
Revision 73452 : Si pas de durée (ancien document en base avant spipmotion), on refait une ...
10 juin 2013, par kent1@… — LogSi pas de durée (ancien document en base avant spipmotion), on refait une récupération des metas avant de créer une vignette
Une condition manquante sur la rotation créait des images dans le mauvais sens
Une chaîne de langue manquante