
Advanced search
Medias (91)
-
Head down (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
-
Echoplex (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
-
Discipline (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
-
Letting you (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
-
1 000 000 (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
-
999 999 (wav version)
26 September 2011, by
Updated: April 2013
Language: English
Type: Audio
Other articles (19)
-
Pas question de marché, de cloud etc...
10 April 2011Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
sur le web 2.0 et dans les entreprises qui en vivent.
Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...) -
Keeping control of your media in your hands
13 April 2011, byThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 March 2010, byLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3); le plugin champs extras v2 nécessité par (...)
On other websites (3642)
-
Cancelling ffpeg launched as a C# process
22 April 2016, by DarwinIcesurferI’m launching ffmpeg in a c# process to encode a video. In a command window, ffmpeg can be interrupted by pressing CTRL-C. I have tried to achieve the same effect by closing the process, however ffmpeg does not appear to close (it is still visible in task manager and it does not release the handle on the file it was encoding)
How can ffmpeg be interrupted programatically?
static Process proc;
static BackgroundWorker bw;
public void EncodeVideoWithProgress(string filename, string arguments, BackgroundWorker worker, DoWorkEventArgs e)
{
proc = new Process();
// assign the backgroud worker to a class member variable so all function within the class will have access
bw = worker;
proc.StartInfo.FileName = "ffmpeg";
proc.StartInfo.Arguments = "-i " + " \"" + filename + "\" " + arguments;
proc.StartInfo.UseShellExecute = false;
proc.EnableRaisingEvents = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.CreateNoWindow = true;
proc.ErrorDataReceived += new DataReceivedEventHandler(NetErrorDataHandler);
proc.Start();
proc.BeginErrorReadLine();
proc.WaitForExit();
}
private static void NetErrorDataHandler(object sendingProcess,
DataReceivedEventArgs errLine)
{
if (bw.CancellationPending)
{
proc.CloseMainWindow();
proc.Close();
}
else
{
// do other tasks
}
} -
Properly handling FFMpeg multithreading
31 March 2020, by Salvo PassaroI’m writing a program that receives multiple RTSP live streams and transmuxes them into various formats. My first idea was to spawn a thread for each stream to handle receiving, demuxing and remuxing; then i realized it was conceptually better to instead spread the work across "workers".
So i eventually ended up building
- a
std::queue
(and an associated mutex) ofAVPacket
s for each stream - a semaphore based on
std::condition_variable
- a worker to handle network io (which essentially loops over
av_read_frame
and notifies the semaphore on each successful iteration) - a worker to "consume" received packets from the queue (which waits on the semaphore)
Now, using the above, stream quality noticeably dropped. I’m not sure if my load balancing approach is poor or messes up libavformat somehow; is there something I’m missing?
- a
-
convert recordRTC webm file to mp4
29 August 2022, by SAMEERI'm using recordRTC in browser for creating Video Clip, but after stop recording, I'm getting blob file type.


but I want to mp4 file type, for converting I used ffmpeg.js https://archive.org/download/ffmpeg_asm/ffmpeg_asm.js . yes I'm able to covert it now,


but the worry thing is, Now I only can view it on after downloading to my local PC, when I upload it to the server and then retrieve it, It's not visible.


recordRef.current.stopRecording(function (url) {
 convertStreams(recordRef.current.getBlob());

 });


 var workerPath = 'https://archive.org/download/ffmpeg_asm/ffmpeg_asm.js';

 function processInWebWorker() {
 var blob = URL.createObjectURL(new Blob(['importScripts("' + workerPath + '");var now = Date.now;function print(text) {postMessage({"type" : "stdout","data" : text});};onmessage = function(event) {var message = event.data;if (message.type === "command") {var Module = {print: print,printErr: print,files: message.files || [],arguments: message.arguments || [],TOTAL_MEMORY: message.TOTAL_MEMORY || false};postMessage({"type" : "start","data" : Module.arguments.join(" ")});postMessage({"type" : "stdout","data" : "Received command: " +Module.arguments.join(" ") +((Module.TOTAL_MEMORY) ? ". Processing with " + Module.TOTAL_MEMORY + " bits." : "")});var time = now();var result = ffmpeg_run(Module);var totalTime = now() - time;postMessage({"type" : "stdout","data" : "Finished processing (took " + totalTime + "ms)"});postMessage({"type" : "done","data" : result,"time" : totalTime});}};postMessage({"type" : "ready"});'], {
 type: 'application/javascript'
 }));

 var worker = new Worker(blob);
 URL.revokeObjectURL(blob);
 return worker;
 }

 var worker;

 function convertStreams(videoBlob) {
 setBlob(videoBlob)
 setIsRecording(false)
 setVideoPreview(true)
 var aab;
 var buffersReady;
 var workerReady;
 var posted;

 var fileReader = new FileReader();
 fileReader.onload = function () {
 aab = this.result;
 postMessage();
 };
 fileReader.readAsArrayBuffer(videoBlob);

 if (!worker) {
 worker = processInWebWorker();
 }

 worker.onmessage = function (event) {
 var message = event.data;
 if (message.type == "ready") {

 workerReady = true;
 if (buffersReady)
 postMessage();
 } else if (message.type == "stdout") {
 } else if (message.type == "start") {
 } else if (message.type == "done") {
 var result = message.data[0];
 var videoFile = new File([result.data], 'test.mp4', {
 type: 'video/mpeg4'
 });
 setVideo_obj(videoFile)


 }
 };
 const postMessage = function () {
 posted = true;

 worker.postMessage({
 type: 'command',
 arguments: '-i video.webm -c:v mpeg4 -b:v 6400k -strict experimental output.mp4'.split(' '),
 // arguments: 'ffmpeg -i video.webm -movflags faststart -profile:v high -level 4.2 video.mp4',
 files: [
 {
 data: new Uint8Array(aab),
 name: 'video.webm'
 }
 ]
 });

 };
 }


 }
 }