
Recherche avancée
Médias (1)
-
The Slip - Artworks
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (17)
-
Création définitive du canal
12 mars 2010, parLorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
A la validation, vous recevez un email vous invitant donc à créer votre canal.
Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...) -
Taille des images et des logos définissables
9 février 2011, parDans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...)
Sur d’autres sites (917)
-
FFMPEG didnt create .ts the second time in Process [closed]
10 novembre 2024, par namig

[matroska,webm @ 0x63b6772ed400] EBML header parsing failed
[in#0 @ 0x63b6772ed300] Error opening input : Invalid data found when processing input
Error opening input file dir/ /segment_20.webm.
Error opening input files : Invalid data found when processing input




I try to create live server with hls and take videos form client with js 10 second , and in server I try to convert it to .ts so the first works correctly but the second and others returned this error.


Here is Controller Action


public async Task<iactionresult> AddStream([FromForm] IFormFile file, string streamId)
{
 if (file == null || file.Length <= 0)
 {
 return BadRequest(" Invalid File.");
 }

 var tempFilePath = Path.Combine(_env.WebRootPath + "/temps", file.FileName);

 try
 {
 using (var stream = new FileStream(tempFilePath, FileMode.Create))
 {
 await file.CopyToAsync(stream);
 }

 VideoService.InitializeStream(streamId, _env.WebRootPath + "/assets");

 VideoService.ConvertSegmentToTs(streamId, tempFilePath, _env.WebRootPath + $"/assets/{streamId}");

 return Ok(new { message = "Segment başarıyla yüklendi ve işlendi." });
 }
 catch (Exception ex)
 {
 return StatusCode(500, $"Hata oluştu: {ex.Message}");
 } 
}
</iactionresult>


And the static Service


public static class VideoService
{
 private static readonly string ffmpegPath = "/usr/bin/ffmpeg";
 private static readonly ConcurrentDictionary m3u8Files = new ConcurrentDictionary();

 public static void InitializeStream(string streamId, string outputDirectory)
 {
 var directory = Path.Combine(outputDirectory, streamId);

 if (!Directory.Exists(directory))
 Directory.CreateDirectory(directory);

 var m3u8FilePath = Path.Combine(directory, $"{streamId}.m3u8");

 if (!File.Exists(m3u8FilePath))
 {
 File.WriteAllText(m3u8FilePath, "#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:10\n#EXT-X-MEDIA-SEQUENCE:0\n");
 m3u8Files[streamId] = m3u8FilePath;
 }
 }

 public static void ConvertSegmentToTs(string streamId, string segmentPath, string outputDirectory)
 {
 var tsFileName = $"{streamId}_{Path.GetFileNameWithoutExtension(segmentPath)}.ts";
 var tsFilePath = Path.Combine(outputDirectory, tsFileName);

 var ffmpegArgs = $"-f webm -i \"{segmentPath}\" -c copy -f mpegts \"{tsFilePath}\"";

 using (var process = new Process())
 {
 process.StartInfo.FileName = ffmpegPath;
 process.StartInfo.Arguments = ffmpegArgs;
 process.StartInfo.RedirectStandardOutput = true;
 process.StartInfo.RedirectStandardError = true;
 process.StartInfo.UseShellExecute = false;
 process.StartInfo.CreateNoWindow = true;

 process.Start();
 process.WaitForExit();

 if (process.ExitCode == 0)
 {
 UpdateM3u8File(streamId, tsFileName, outputDirectory);
 }
 else
 {
 var error = process.StandardError.ReadToEnd();
 Console.WriteLine($"FFMPEG Error for Stream {streamId}: {error}");
 }
 }
 }

 private static void UpdateM3u8File(string streamId, string tsFileName, string outputDirectory)
 {
 if (!m3u8Files.TryGetValue(streamId, out var m3u8FilePath))
 {
 InitializeStream(streamId, outputDirectory);

 if (!m3u8Files.TryGetValue(streamId, out m3u8FilePath))
 {
 Console.WriteLine($"Error: {streamId}");
 return; 
 }
 }

 var segmentDuration = 10; 
 var entry = $"#EXTINF:{segmentDuration},\n{tsFileName}\n";

 File.AppendAllText(m3u8FilePath, entry);
 }
}



How can I solve this problem ?


-
Revision 32594 : plugins en minuscules, et alias pour les noms de sites
1er novembre 2009, par fil@… — Logplugins en minuscules, et alias pour les noms de sites