Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (17)

  • Création définitive du canal

    12 mars 2010, par

    Lorsque 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, par

    La 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, par

    Dans 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)&#xA;{&#xA;    if (file == null || file.Length &lt;= 0)&#xA;    {&#xA;        return BadRequest(" Invalid File.");&#xA;    }&#xA;&#xA;    var tempFilePath = Path.Combine(_env.WebRootPath &#x2B; "/temps", file.FileName);&#xA;&#xA;    try&#xA;    {&#xA;        using (var stream = new FileStream(tempFilePath, FileMode.Create))&#xA;        {&#xA;            await file.CopyToAsync(stream);&#xA;        }&#xA;&#xA;        VideoService.InitializeStream(streamId, _env.WebRootPath &#x2B; "/assets");&#xA;&#xA;        VideoService.ConvertSegmentToTs(streamId, tempFilePath, _env.WebRootPath &#x2B; $"/assets/{streamId}");&#xA;&#xA;        return Ok(new { message = "Segment başarıyla y&#xFC;klendi ve işlendi." });&#xA;    }&#xA;    catch (Exception ex)&#xA;    {&#xA;        return StatusCode(500, $"Hata oluştu: {ex.Message}");&#xA;    } &#xA;}&#xA;</iactionresult>

    &#xA;

    And the static Service

    &#xA;

    public static class VideoService&#xA;{&#xA;    private static readonly string ffmpegPath = "/usr/bin/ffmpeg";&#xA;    private static readonly ConcurrentDictionary m3u8Files = new ConcurrentDictionary();&#xA;&#xA;    public static void InitializeStream(string streamId, string outputDirectory)&#xA;    {&#xA;        var directory = Path.Combine(outputDirectory, streamId);&#xA;&#xA;        if (!Directory.Exists(directory))&#xA;            Directory.CreateDirectory(directory);&#xA;&#xA;        var m3u8FilePath = Path.Combine(directory, $"{streamId}.m3u8");&#xA;&#xA;        if (!File.Exists(m3u8FilePath))&#xA;        {&#xA;            File.WriteAllText(m3u8FilePath, "#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:10\n#EXT-X-MEDIA-SEQUENCE:0\n");&#xA;            m3u8Files[streamId] = m3u8FilePath;&#xA;        }&#xA;    }&#xA;&#xA;    public static void ConvertSegmentToTs(string streamId, string segmentPath, string outputDirectory)&#xA;    {&#xA;        var tsFileName = $"{streamId}_{Path.GetFileNameWithoutExtension(segmentPath)}.ts";&#xA;        var tsFilePath = Path.Combine(outputDirectory, tsFileName);&#xA;&#xA;        var ffmpegArgs = $"-f webm -i \"{segmentPath}\" -c copy -f mpegts \"{tsFilePath}\"";&#xA;&#xA;        using (var process = new Process())&#xA;        {&#xA;            process.StartInfo.FileName = ffmpegPath;&#xA;            process.StartInfo.Arguments = ffmpegArgs;&#xA;            process.StartInfo.RedirectStandardOutput = true;&#xA;            process.StartInfo.RedirectStandardError = true;&#xA;            process.StartInfo.UseShellExecute = false;&#xA;            process.StartInfo.CreateNoWindow = true;&#xA;&#xA;            process.Start();&#xA;            process.WaitForExit();&#xA;&#xA;            if (process.ExitCode == 0)&#xA;            {&#xA;                UpdateM3u8File(streamId, tsFileName, outputDirectory);&#xA;            }&#xA;            else&#xA;            {&#xA;                var error = process.StandardError.ReadToEnd();&#xA;                Console.WriteLine($"FFMPEG Error for Stream {streamId}: {error}");&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;    private static void UpdateM3u8File(string streamId, string tsFileName, string outputDirectory)&#xA;    {&#xA;        if (!m3u8Files.TryGetValue(streamId, out var m3u8FilePath))&#xA;        {&#xA;            InitializeStream(streamId, outputDirectory);&#xA;&#xA;            if (!m3u8Files.TryGetValue(streamId, out m3u8FilePath))&#xA;            {&#xA;                Console.WriteLine($"Error: {streamId}");&#xA;                return; &#xA;            }&#xA;        }&#xA;&#xA;        var segmentDuration = 10; &#xA;        var entry = $"#EXTINF:{segmentDuration},\n{tsFileName}\n";&#xA;&#xA;        File.AppendAllText(m3u8FilePath, entry);&#xA;    }&#xA;}&#xA;

    &#xA;

    How can I solve this problem ?

    &#xA;

  • Revision 32594 : plugins en minuscules, et alias pour les noms de sites

    1er novembre 2009, par fil@… — Log

    plugins en minuscules, et alias pour les noms de sites