
Recherche avancée
Autres articles (71)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
Possibilité de déploiement en ferme
12 avril 2011, parMediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)
Sur d’autres sites (5991)
-
Updating app uses FFMpeg version used in older version of app
29 juin 2020, par Android DeveloperI was using FFMpeg old version in my app and now i updated my app to new FFMpeg version.But when i update my old app version to new app version it still seems to use old version of FFMpeg until i uninstall old app version and then install new app version.I tried programmatically delete cache data in my new version of app using below code but with that also I face problem in some devices which still uses old FFMpeg version-


private void clearData()
 {
 try {
 PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
 int mCurrentVersion = pInfo.versionCode;
 SharedPreferences mSharedPreferences = getSharedPreferences("xyz", Context.MODE_PRIVATE);
 SharedPreferences.Editor mEditor = mSharedPreferences.edit();
 mEditor.apply();
 int last_version = mSharedPreferences.getInt("last_version", -1);
 if(last_version != mCurrentVersion)
 {
 deleteCache(this);
 }
 mEditor.putInt("last_version", mCurrentVersion);
 mEditor.commit();
 } catch (Exception e) {
 FirebaseCrashlytics.getInstance().recordException(e);
 }
 }
 private void deleteCache(Context context) {
 try {
 File dir = context.getCacheDir();
 deleteCacheDir(dir);
 } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e);
 }
 }
 private boolean deleteCacheDir(File dir) {
 if (dir != null && dir.isDirectory()) {
 String[] children = dir.list();
 for (int i = 0; i < children.length; i++) {
 boolean success = deleteCacheDir(new File(dir, children[i]));
 if (!success) {
 return false;
 }
 }
 return dir.delete();
 } else if(dir!= null && dir.isFile()) {
 return dir.delete();
 } else {
 return false;
 }
 }



-
How to broadcast live audio in node js (1 to many)
19 juin 2020, par Yousef AlaqraI'm trying stream live audio to a wide range of clients in a web browser.



My current solution :



Dotnet core 3.1 console application



- 

- receive the audio data over UDP
- trimming the first 28 bytes of each received packet
- and send the processed packet over UDP.









Node JS



- 

- execute a Ffmepg as a child process to receive audio data packets
over UDP from the console app, and encode each packet to audio WAV
format
- Pipe out the result of the child process into a GET HTTP endpoint response







Browser



- 

- HTML audio element with source value equals to the node js GET
endpoint





Problem :



The solution is giving a good result, but only for one device(one to one), which is not what I want to achieve.



I've tried many solutions to make it applicable to a wide range of devices, such as using working threads and forking a child process, but none of them changes the result.



I believe that I've to make some changes to the node js implementation, so here I'll share it with you, hoping to get a clue to solve the problem.



var express = require("express");
var app = express();
var children = require("child_process");

var port = 5001;
var host = "192.168.1.230";

app.listen(port, host, () => {
 console.log("Server running at http://" + host + ":" + port + "/");
});

app.get('/stream', (req, res) => {
 const ffmpegCommand = "ffmpeg";
 var ffmpegOptions =
 "-f s16le -ar 48000 -ac 2 -i udp://192.168.1.230:65535 -f wav -";

 var ffm = children.spawn(ffmpegCommand, ffmpegOptions.split(" "));

 res.writeHead(200, { "Content-Type": "audio/wav; codecs=PCM" });
 ffm.stdout.pipe(res);
});




If someone interested to see the full implementation, please let me know.


-
How do I broadcast live audio in Node.js ?
20 juin 2020, par Yousef AlaqraI'm trying stream live audio to a wide range of clients in a web browser.



My current solution :



Dotnet core 3.1 console application



- 

- receive the audio data over UDP
- trimming the first 28 bytes of each received packet
- and send the processed packet over UDP.









Node JS



- 

- execute a Ffmepg as a child process to receive audio data packets
over UDP from the console app, and encode each packet to audio WAV
format
- Pipe out the result of the child process into a GET HTTP endpoint response







Browser



- 

- HTML audio element with source value equals to the node js GET
endpoint





Problem :



The solution is giving a good result, but only for one device(one to one), which is not what I want to achieve.



I've tried many solutions to make it applicable to a wide range of devices, such as using working threads and forking a child process, but none of them changes the result.



I believe that I've to make some changes to the node js implementation, so here I'll share it with you, hoping to get a clue to solve the problem.



var express = require("express");
var app = express();
var children = require("child_process");

var port = 5001;
var host = "192.168.1.230";

app.listen(port, host, () => {
 console.log("Server running at http://" + host + ":" + port + "/");
});

app.get('/stream', (req, res) => {
 const ffmpegCommand = "ffmpeg";
 var ffmpegOptions =
 "-f s16le -ar 48000 -ac 2 -i udp://192.168.1.230:65535 -f wav -";

 var ffm = children.spawn(ffmpegCommand, ffmpegOptions.split(" "));

 res.writeHead(200, { "Content-Type": "audio/wav; codecs=PCM" });
 ffm.stdout.pipe(res);
});




If someone interested to see the full implementation, please let me know.