
Recherche avancée
Médias (1)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (86)
-
Les sons
15 mai 2013, par -
Automated installation script of MediaSPIP
25 avril 2011, parTo overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
The documentation of the use of this installation script is available here.
The code of this (...) -
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
Sur d’autres sites (9878)
-
How to view the stream generated from mkvserver via ffplay ?
18 juin 2019, par Chaitanya BhardwajI want to live stream from one source(ffmpeg) to multiple clients for which I’m using mkvserver.
I’m able to live stream a webcam from ffmpeg(client) to mkvserver(server) as follows :On Server :
nc -l | ./server
On Client :
ffmpeg -f avfoundation -framerate 30 -i 0 -b 900k -f matroska -r 20 tcp://:
To view the genereted steam on server, I used the
ffplay
as :ffplay tcp://:<port>
</port>but I got the
Connection timed out error
. Please suggest a way to view the generated stream on the server viaffplay
. Thanks ! -
remuxing audio and videos (screen and presenter) captured at the same time does not synchronize
22 septembre 2014, par user28163trying to merge a screencast with a video (without sound) and a sound steam which has been captured separately using ffmpeg using a bash command. All the stream-capture were started at the same time and all ffmpeg processes killed at the same time (pkill). But when I remux them together, the screencast and video does not match, and thus sound does not synchronize either.
Where did I go wrong ? Any inputs appreciated from ffmpeg experts here. Thanks in advance.
Please find the ffmpeg output as follows :
- The ffmpeg log of two videos muxing (http://pastebin.com/XwnDSf5i)
- The ffmpeg log of remuxing the sound with the side-by side video as of 1 above (cannot paste as the pastebin limit exeeded :( ).
UPDATE :
After checking the lenght of the screencast, I figured out that the screen capture (though started and stopped at the same time as video and sound using a bash script), is shorter in lenght by 1m54s than video and audio (former 34:22 vs later 36:16). The video was captured in h264 mp4 wrapper at -r 30. So is screen capture but lossless
%ffmpeg -report -f x11grab -r 30 -s 1920x1080 -i :0.0 -qscale 0 -vcodec libx264 -threads 4 screen.m4v
Could that be the reason for the delay ? Is there any way to extend the screencast against the videos ? Thanks !
-
Download billboard hot 100 (but only 50) mp3 files
4 mars 2021, par AtlasYo yo yo. I got this insane idea to get 50 of the billboard hot 100 songs, download them into mp3 files, and then put them on private online radio.


Problem is, the way I do it doesn't download each file one by one, it puts all the music together in one mp3 file. Here's my code so far (terrible, I know... I just wanna throw this together really quickly)


const { getChart } = require("billboard-top-100");
const ffmpeg = require("fluent-ffmpeg");
const { mkdir } = require("fs");
const ytdl = require("ytdl-core");
const YT = require("scrape-youtube").default;

getChart('hot-100', (err, chart) => {
 if(err) console.log(err);
 chart.songs.length = 50;
 for (var i = 0; i < chart.songs.length; i++) {
 var song = chart.songs[i];
 song.artist = song.artist.replace("Featuring", "feat.");
 var name = `${song.artist} - ${song.title}`;
 YT.search(name).then(res => {
 downloadVideo(res.videos[0].link, name).then(_ => { console.log(""); }).catch(console.log);
 }).catch(err => console.log(err));
 };
});

function downloadVideo(url, name) {
 return new Promise((resolve, reject) => {
 var stream = ytdl(url, { filter: "audioonly", quality: "highestaudio" });
 var start = Date.now();

 ffmpeg(stream)
 .audioBitrate(128)
 .save(`${__dirname}/${new Date().getWeek()}/${name}.mp3`)
 .on("end", _ => {
 console.log(`Downloaded "${name}.mp3" - Took ${(Date.now() - start) / 1000} seconds.`);
 resolve(`${name}.mp3`);
 })
 .on("error", _ => reject("something went wong"));
 });
}

Date.prototype.getWeek = function() {
 var onejan = new Date(this.getFullYear(),0,1);
 return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}