
Advanced search
Other articles (35)
-
Mise à disposition des fichiers
14 April 2011, byPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
Publier sur MédiaSpip
13 June 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 -
Récupération d’informations sur le site maître à l’installation d’une instance
26 November 2010, byUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus; Son logo; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)
On other websites (4940)
-
Ffmpeg send duration of video to client (using node-fluent-ffmpeg)
26 May 2013, by VprnlI'm really new to the world of ffmpeg so please excuses me if this is a stupid queston.
I'm using the module Node-fluent-ffmpeg to stream a movie and convert it from avi to webm with FFMPEG.
So far so good (it plays the video), but I'm having trouble parsing the duration to the player. It also gives me an error even though I plays the video.
my code is as followed:
var stat = fs.statSync(movie);
var start = 0;
var end = 0;
var range = req.header('Range');
if (range != null) {
start = parseInt(range.slice(range.indexOf('bytes=')+6,
range.indexOf('-')));
end = parseInt(range.slice(range.indexOf('-')+1,
range.length));
}
if (isNaN(end) || end == 0) end = stat.size-1;
if (start > end) return;
var duration = (end / 1024) * 8 / 1024;
res.writeHead(206, { // NOTE: a partial http response
'Connection':'close',
'Content-Type':'video/webm',
'Content-Length':end - start,
'Content-Range':'bytes '+start+'-'+end+'/'+stat.size,
'Transfer-Encoding':'chunked'
});
var proc = new ffmpeg({ source: movie, nolog: true, priority: 1, timeout:15000})
.toFormat('webm')
.addOptions(['-probesize 900000', '-analyzeduration 0', '-minrate 1024k', '-maxrate 1024k', '-bufsize 1835k', '-t '+duration+' -ss'])
.writeToStream(res, function(retcode, error){
if (!error){
console.log('file has been converted succesfully',retcode);
}else{
console.log('file conversion error',error);
}
});I set the header with a start and a end based on this article: http://delog.wordpress.com/2011/04/25/stream-webm-file-to-chrome-using-node-js/
I calculate the length in seconds in the variable duration.
The error FFmpeg is giving me is:
file conversion error ffmpeg version N-52458-gaa96439 Copyright (c) 2000-2013 the FFmpeg developers
built on Apr 24 2013 22:19:32 with gcc 4.8.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --e
nable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable
-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --ena
ble-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwola
me --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enabl
e-libxvid --enable-zlib
libavutil 52. 27.101 / 52. 27.101
libavcodec 55. 6.100 / 55. 6.100
libavformat 55. 3.100 / 55. 3.100
libavdevice 55. 0.100 / 55. 0.100
libavfilter 3. 60.101 / 3. 60.101
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
Input #0, avi, from 'C:/temp/test.avi':
Metadata:
encoder : Nandub v1.0rc2
Duration: 00:01:09.78, start: 0.000000, bitrate: 1517 kb/s
Stream #0:0: Video: msmpeg4v3 (DIV3 / 0x33564944), yuv420p, 640x352, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 222 kb/s
[libvpx @ 0036db20] v1.2.0
Output #0, webm, to 'pipe:1':
Metadata:
encoder : Lavf55.3.100
Stream #0:0: Video: vp8, yuv420p, 640x352, q=-1--1, 200 kb/s, 1k tbn, 23.98 tbc
Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp
Stream mapping:
Stream #0:0 -> #0:0 (msmpeg4 -> libvpx)
Stream #0:1 -> #0:1 (mp3 -> libvorbis)The client side player (which is VideoJs) says the file is infinite/NaN in length.
I feel like I'm pretty close to a solution but my inexperience with the subject matter prohibits me from getting it to work. If I'm unclear in any way please let me know. (I have a tendency of explaining things fuzzy.)
Thanks in advance!
[EDIT]
I removed the duration bit because it has nothing to do with the issue. I checked the response header of the client and saw:
Accept-Ranges:bytes
Connection:keep-alive
Content-Length:13232127
Content-Range:bytes 0-13232127/13232128
Content-Type:video/webmWhy can't the client figure out the duration even though it receives it in the header?
-
Ffmpeg set duration using node-fluent-ffmpeg
23 May 2013, by VprnlI'm really new to the world of ffmpeg so please excuses me if this is a stupid queston.
I'm using the module Node-fluent-ffmpeg to stream a movie and convert it from avi to webm.
So far so good (it plays the video), but I'm having trouble parsing the duration to the player. My ultimate goal is to be able to skip ahead in the movie. But first the player needs to know how long the video is.my code is as followed:
var stat = fs.statSync(movie);
var start = 0;
var end = 0;
var range = req.header('Range');
if (range != null) {
start = parseInt(range.slice(range.indexOf('bytes=')+6,
range.indexOf('-')));
end = parseInt(range.slice(range.indexOf('-')+1,
range.length));
}
if (isNaN(end) || end == 0) end = stat.size-1;
if (start > end) return;
res.writeHead(206, { // NOTE: a partial http response
'Connection':'close',
'Content-Type':'video/webm',
'Content-Length':end - start,
'Content-Range':'bytes '+start+'-'+end+'/'+stat.size,
'Transfer-Encoding':'chunked'
});
var proc = new ffmpeg({ source: movie, nolog: true, priority: 1, timeout:15000})
.toFormat('webm')
.withVideoBitrate('1024k')
.addOptions(['-probesize 900000', '-analyzeduration 0', '-bufsize 14000'])
.writeToStream(res, function(retcode, error){
if (!error){
console.log('file has been converted succesfully',retcode);
}else{
console.log('file conversion error',error);
}
});I tried to set the header with a start and a end based on this article: http://delog.wordpress.com/2011/04/25/stream-webm-file-to-chrome-using-node-js/
I also looked in the FFmpeg documentation and found -f duration and -ss.
But I don't quite know how to convert the byte range to seconds.I feel like I'm pretty close to a solution but my inexperience with the subject matter prohibits me from getting it to work. If I'm unclear in any way please let me know. (I have a tendency of explaining things fuzzy.)
Thanks in advance!
-
Merge commit 'bd6496fa07e32fd09ceb79404f9af43df959bcb2'
5 May 2017, by Clément BœschMerge commit 'bd6496fa07e32fd09ceb79404f9af43df959bcb2'
* commit 'bd6496fa07e32fd09ceb79404f9af43df959bcb2':
interplayvideo: Convert to the new bitstream reader
adx: Convert to the new bitstream reader
dvbsubdec: Convert to the new bitstream reader
motionpixels: Convert to the new bitstream readerThis merge is a noop, see
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-April/209609.htmlMerged-by: Clément Bœsch <u@pkh.me>