
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (67)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, 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 (...) -
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 (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...)
Sur d’autres sites (5912)
-
avconv : fix handling attachments in init_output_stream
23 mai 2016, par Anton Khirnov -
How can i make the dashjs player respect the stream window ?
6 mars 2021, par Octavia KitsuneI created the following command to i run on the serverside turn a source url into a cmaf dash stream :


ffmpeg -loglevel error -re -i SOURCEURL -c copy -f dash -dash_segment_type mp4 -remove_at_exit 1 -seg_duration 2 -target_latency 1 -frag_type duration -frag_duration 0.1 -window_size 10 -extra_window_size 3 -streaming 1 -ldash 1 -use_template 1 -use_timeline 0 -index_correction 1 -tune zerolatency -fflags "+nobuffer+flush_packets" -format_options "movflags=cmaf" -adaptation_sets "id=0,streams=0 id=1,streams=1" -utc_timing_url "http://time.akamai.com/?iso&ms" stream/main.mpd



And on the clientside i run a dashjs player with the following configuration :


const video = document.getElementById('video')
 const player = dashjs.MediaPlayer().create()

 player.initialize(video, false, true)
 player.updateSettings({
 streaming: {
 stallThreshold: 0.05,
 lowLatencyEnabled: true,
 liveDelay: 1,
 liveCatchup: {
 minDrift: 1,
 playbackRate: 0.3,
 mode: 'liveCatchupModeDefault'
 },
 abr: {
 useDefaultABRRules: true,
 ABRStrategy: 'abrLoLP',
 fetchThroughputCalculationMode:
 'abrFetchThroughputCalculationMoofParsing'
 }
 }
 })



My problem is, that dashjs loads a few segements and then tries to grab segments that error with a 404. It seems the segments it asks for fall out ot the window the stream defines.


So i wonder how i can align my dashjs with my stream configuration so that it does respect the window defined by the stream, to basically simulate a livestream from any kind of videosource ?


-
c# Process data piping : 'The pipe has ended'
9 août 2024, par user2224583There are two process I am handling. Ffmpeg and fpcalc.


I have completed my appplication by encoding a wav file with ffmpeg, and reading it for purposes of chromaprinting with fpcalc.


However, I think the next step is to skip the saving of a wav file, and pipe the data directly into the fpcalc process.


I've been trying to understand how to pipe the stream data from ffpmeg stdout into the fpcalc process stdin.


Some of the code I've been testing and reading (below) has come from other answers, with regards to piping data out of a Process object in c#, specifically with ffmpeg, found here on Stack


private static void ExtractPCMAudio(string input, int duration)
 {
 Process proc = new Process();

 proc.StartInfo.FileName = @"ffmpeg.exe";
 proc.StartInfo.Arguments = $"-t 00:3:00 -i \"{input}\" -f wav -ac 1 -acodec pcm_s16le -ar 16000 -"; //"-" Dash pipes the stream
 proc.StartInfo.UseShellExecute = false;
 proc.StartInfo.RedirectStandardInput = true;
 proc.StartInfo.RedirectStandardOutput = true;

 proc.Start();

 FileStream baseStream = proc.StandardOutput.BaseStream as FileStream;

 byte[] audioBytes = null;
 int lastRead = 0;

 using (MemoryStream ms = new MemoryStream())
 { 
 byte[] buffer = new byte[4096];
 do
 {
 lastRead = baseStream.Read(buffer, 0, buffer.Length);
 ms.Write(buffer, 0, lastRead);
 } while (lastRead > 0);

 audioBytes = ms.ToArray();
 }
 
 proc.StandardInput.BaseStream.Close();
 
 baseStream.Close();
 FingerPrintAudio(audioBytes);
 Console.WriteLine("Done!");
 
 }


private static void FingerPrintAudio(byte[] audioBytes)
 {
 
 var fpcalc = "fpcalc.exe";
 var procStartInfo =
 new ProcessStartInfo(fpcalc, $" -raw -length 600 -json") 
 {
 RedirectStandardOutput = true,
 RedirectStandardInput = true,
 RedirectStandardError = true,
 UseShellExecute = false,
 CreateNoWindow = true,
 };

 var process = new Process {StartInfo = procStartInfo};
 process.Start(); 
 
 process.StandardInput.BaseStream.Write(audioBytes, 0, audioBytes.Length); //<--This is where the piping error happens.

 string processOutput = null;
 using (var sr = new StreamWriter("Test.json"))
 {
 while ((processOutput = process.StandardOutput.ReadLine()) != null)
 {
 sr.WriteLine(processOutput);
 Console.WriteLine(processOutput);
 }
 sr.Close();
 }
 
 }



Throughout many variations of the code, posted above, I seem to encounter an error : 'the pipe has ended'.
I think it is a buffering error, where the process handling fpcalc is expecting more byte data, but is cut short ?


Perhaps there is a better way to send stream data from one process and use it in a second process ?