
Recherche avancée
Médias (3)
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (102)
-
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation" -
ANNEXE : Les extensions, plugins SPIP des canaux
11 février 2010, parUn plugin est un ajout fonctionnel au noyau principal de SPIP. MediaSPIP consiste en un choix délibéré de plugins existant ou pas auparavant dans la communauté SPIP, qui ont pour certains nécessité soit leur création de A à Z, soit des ajouts de fonctionnalités.
Les extensions que MediaSPIP nécessite pour fonctionner
Depuis la version 2.1.0, SPIP permet d’ajouter des plugins dans le répertoire extensions/.
Les "extensions" ne sont ni plus ni moins que des plugins dont la particularité est qu’ils se (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (10441)
-
ffmpeg disconnects from the HTTP server
29 janvier 2017, par Frédéric LopesI am facing to a problem that I cannot solve for days now and cannot find any answer over internet..
I am currently working on a live streaming & IoT project through internet in order to access to indoor items and see through a webcam. I am using Node.js for the server side and using a mpeg1video decoder working with WebSocket (https://github.com/phoboslab/jsmpeg).
All the server side (HTTP + WebSocket server) and client side are working properly (I see the clients connecting and waiting for sockets) but when I try to stream a video (or a camera) ffmpeg is not keeping the connection with my HTTP server, the connection is established but it is disconnected 1 second after being connected... Here is the terminal outputs gathered :
if( process.argv.length < 4 ) {
console.log(
'Usage: \n' +
'node stream-server.js [ ]'
);
process.exit();
}
var STREAM_PORT = process.argv[2] || 8080,
WEBSOCKET_PORT = process.argv[3] || 8081,
STREAM_MAGIC_BYTES = 'jsmp'; // Must be 4 bytes
var width = 320,
height = 240;
// Websocket Server
var socketServer = new (require('ws').Server)({port: WEBSOCKET_PORT});
socketServer.on('connection', function(socket) {
// Send magic bytes and video size to the newly connected socket
// struct { char magic[4]; unsigned short width, height;}
var streamHeader = new Buffer(8);
streamHeader.write(STREAM_MAGIC_BYTES);
streamHeader.writeUInt16BE(width, 4);
streamHeader.writeUInt16BE(height, 6);
socket.send(streamHeader, {binary:true});
console.log('New WebSocket Connection ('+socketServer.clients.length+' total)');
socket.on('close', function(code, message){
console.log( 'Disconnected WebSocket ('+socketServer.clients.length+' total)' );
});
});
socketServer.broadcast = function(data, opts) {
for( var i in this.clients ) {
if (this.clients[i].readyState == 1) {
this.clients[i].send(data, opts);
}
else {
console.log( 'Error: Client ('+i+') not connected.' );
}
}
};
// HTTP Server to accept incomming MPEG Stream
var streamConnected = false;
var streamServer = require('http').createServer(function(request, response) {
response.connection.setTimeout(0);
if(streamConnected) {
response.end();
return;
}
streamConnected = true;
var params = request.url.substr(1).split('/');
width = (params[0] || 320)|0;
height = (params[1] || 240)|0;
console.log(
'Stream Connected: ' + request.socket.remoteAddress +
':' + request.socket.remotePort + ' size: ' + width + 'x' + height
);
request.on('data', function(data){
socketServer.broadcast(data, {binary:true});
});
request.on('close', function(data){
console.log("Stream disconnected");
streamConnected = false;
});
}).listen(STREAM_PORT);
console.log('Listening for MPEG Stream on http://127.0.0.1:'+STREAM_PORT+'/<width>/<height>');
console.log('Awaiting WebSocket connections on ws://127.0.0.1:'+WEBSOCKET_PORT+'/');
</height></width>Once the server running, I am using the command line to send my video to the http server :
ffmpeg -f mp4 -i in.mp4 -f mpeg1video -r 30 http://127.0.0.1:8080
Unfortunatelly, the connection is established for 1 seconde maximum and it disconnects right after.. I tried everything to keep it even setting a timeout to the request of ffmpeg.
Thank you for those who are going to help me with this issue !
UPDATE : Outputs gathered on the terminal
1st is the output generated by ffmpeg :
MacBook-Pro-de-Frederic: ffmpeg -f mp4 -i in.mp4 -f mpeg1video -r 30 http://127.0.0.1:8080
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.25.101
Duration: 00:00:13.29, start: 0.000000, bitrate: 490 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 300x198 [SAR 1:1 DAR 50:33], 489 kb/s, 22.73 fps, 22.73 tbr, 16k tbn, 45.45 tbc (default)
Metadata:
handler_name : VideoHandler
Output #0, mpeg1video, to 'http://127.0.0.1:8080':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.56.100
Stream #0:0(und): Video: mpeg1video, yuv420p, 300x198 [SAR 1:1 DAR 50:33], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc57.64.101 mpeg1video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mpeg1video (native))
Press [q] to stop, [?] for help
frame= 398 fps=0.0 q=7.2 Lsize= 540kB time=00:00:13.23 bitrate= 334.2kbits/s dup=96 drop=0 speed=49.7x
video:540kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%2nd output, the prints of the Node.js script :
MacBook-Pro-de-Frederic: node stream-server.js 8080 8081
Listening for MPEG Stream on http://127.0.0.1:8080/<width>/<height>
Awaiting WebSocket connections on ws://127.0.0.1:8081/
New WebSocket Connection (1 total)
Stream Connected: ::ffff:127.0.0.1:52444 size: 320x240
Stream disconnected
</height></width>As you can see, my server receives the stream from ffmpeg but is disconnected right after.. Thus, I cannot do any stream and I don’t understand why because there is not any error that appears..
UPDATE 2 : TESTED ON RASPBERRYPI MODEL B+
I tested all the code hereabove on raspberry pi (after 5h installing ffmpeg..) and launch the encoding with the terminal command hereafter and it works perfectly ! I am still wondering why it is not working properly on Mac ? Maybe a problem of compatibility between OSX and FFMPEG ? If someone has an answer or an idea of the solution to the problem on Macintosh, let me know !
raspivid -t 0 -w 320 -h 240 -fps 20 -vf -o - | ffmpeg -y -i pipe:0 -s 320x240 -f video4linux2 -f mpeg1video -b 400k -r 30 http://127.0.0.1:8080
Configuration used : Macbook Pro updated running Node.js 6.9.2 & ffmpeg 3.2.2.
Frederic
-
Added REDIRECT_ALLOW_TARGET option (defaults to HTTP referer).
12 juin 2015, par blueimpAdded REDIRECT_ALLOW_TARGET option (defaults to HTTP referer).
-
avformat/hlsenc : Call avio_flush during persistent http connections
15 décembre 2017, par Karthick J