
Recherche avancée
Autres articles (104)
-
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (35317)
-
mixing frame rates to create one video
2 avril 2015, par tagliusI have successfully extracted two videos to .bmp files, one is 30 frames per second, the other is 60. I want to combine them into a single video that plays both clips smoothly at 60fps. If necessary, I have the ability to duplicate the frames of the 30fps video while extracting, which is what I tried in my first attempt. The following is what I have tried to this point, having doubled frames for the 30fps :
ffmpeg.exe -i output_%%05d.bmp -r 60 -c:v libx264 -vf "setpts=0.5*PTS" -pix_fmt yuv420p out.mp4
The resulting file is 60fps, but the video appears to be at around 80-90% speed. During encoding, there are a number of yellow warning messages that read Past duration 0.999992 too large (some of the messages are 0.799995, the rest are 0.999992).
-
ffmpeg screen capture retina high dpi + less latency
26 avril 2022, par Cevahir CumaSo I try to set up a screen sharing (only video) through ethernet from my Macbook Pro to my Asus Vivobook, to use the Vivobook as second screen.


I'm using ffmpeg for that with the following settings :


ffmpeg -re -f avfoundation -framerate 90 -video_size 2880x1800 -i 3 -y -r 90 -pix_fmt uyvy422 -vcodec libx264 -preset ultrafast -tune zerolatency -crf 6 -bufsize 30k -f mpegts udp://192.168.2.2:50000


The first problem ist, that regardless of the settings only 1440x900 non-high dpi are captured. I haven't found a setting for that. Is it even possible, to transmit retina quality ?


The second question is about the latency. So for now I use following command on the Vivobook to play the video :


ffplay -flags low_delay -vf setpts=0 -fs -noborder udp://192.168.2.2:50000


The latency is quite ok, but are there maybe some more options to save latency ? I'm using a direct 1GbE connection, so datarate and stability should not be a problem.


Thank you so much in advance !


-
on('progress') not working - node.js ytdl-core fluent-ffmpeg
9 juillet 2018, par TheBandoleroSo i’m playing with this libraries
ytdl-core
andfluent-ffmpeg
, and basically i got to this function by modifying some examples to fit what i wanted.everything works fine except for the second
on('progress', progress => ....)
call. The first one works as expected, but the second one looks like it isn’t even reached, sinceConsole.log()
inside the secondon('progress'....)
isn’t logging anything at all.Also console doesn’t show any errors throughout the whole function, and the outcome is the expected without any problem, except for the second
on('progress')
issue.I can’t figure out what the problem is, so I hope somebody with more experience can point the problem out to me, since it’s getting quite frustrating now...
function descargarVideoHD(link) {
ytdl.getInfo(link, (err, info) => {
if (err) throw err;
$('li:contains(' + link + ') .progress').css("visibility", "visible");
var longitudEnTiempo = parseInt(info.length_seconds);
let id = ytdl.getURLVideoID(link);
var titulo = limpiarTituloDelVideo(info.title);
let stream = ytdl(id, {
quality: 'highestaudio',
//filter: 'audioonly',
});
//var audioOutput = path.resolve(__dirname, 'audio_' + titulo + '.mp4');
var mainOutput = path.resolve(__dirname, titulo + '.mp4');
var renameFileName = titulo + '.mp4';
var audioOutput = path.resolve(__dirname, titulo + '.mp3');
ffmpeg(stream)
//.audioBitrate(128)
.audioBitrate(256)
.save(`${__dirname}/${titulo}.mp3`)
.on('progress', (p) => {
//readline.cursorTo(process.stdout, 0);
//process.stdout.write(`${p.targetSize}kb downloaded`);
var hmsA = p.timemark;
var aA = hmsA.split(':');
var secondsA = parseInt((+aA[0]) * 60 * 60 + (+aA[1]) * 60 + (+aA[2]));
var porcentageA = (((secondsA / longitudEnTiempo) * 100) / 2).toFixed(2);
$('li:contains(' + link + ') .progress .determinate').css("width", porcentageA + "%");
//console.log(titulo + ' procesado al ' + porcentage + '%');
})
.on('end', () => {
ffmpeg()
.input(ytdl(link, {
filter: format => {
return format.container === 'mp4' && !format.audioEncoding;
}
}))
.videoCodec('copy')
.input(audioOutput)
.audioCodec('copy')
.save(mainOutput)
.on('error', console.error)
.on('progress', progress => {
console.log('Dentro de OnProgress...');
var hms = progress.timemark;
console.log('Timemark: ' + hms);
var a = hms.split(':');
var seconds = parseInt((+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]));
console.log('Segundos: ' + seconds);
var porcentage = ((((seconds / longitudEnTiempo) * 100) / 2) + 50).toFixed(2);
console.log('Procesado al ' + porcentage + '%');
$('li:contains(' + link + ') .progress .determinate').css("width", porcentage + "%");
}).on('end', () => {
fs.unlink(audioOutput, err => {
if (err) {
console.error(err);
}
else {
$('li:contains(' + link + ') .progress .determinate').css("width", "100%");
$('li:contains(' + link + ') .secondary-content.material-icons').text('done');
$('li:contains(' + link + ') .secondary-content.material-icons').addClass('text-green');
/* $('li:contains(' + link + ')').remove();
var indexItem = listaEnlacesYoutube.indexOf(link);
listaEnlacesYoutube.splice(indexItem, 1); */
}
});
});
});
});
}