Recherche avancée

Médias (91)

Autres articles (39)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 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 (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 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 (...)

Sur d’autres sites (4888)

  • Recursively convert media directory from HEVC to h.264 with ffmpeg

    8 avril 2016, par chuckcastle

    I have media server with two directories : Movies and TV Shows. Within each of those directories, each entry exists in a sub-directory which contains the video file and subtitle files.

    I’ve scoured the web and have found an excellent perl script from Michelle Sullivan, posted here :

       #!/usr/bin/perl

    use strict;
    use warnings;

    open DIR, "ls -1 |";
    while (<dir>)
    {
           chomp;
           next if ( -d "$_"); # skip directories
           next unless ( -r "$_"); # if it's not readable skip it!
           my $file = $_;
           open PROBE, "ffprobe -show_streams -of csv '$file' 2>/dev/null|" or die ("Unable to launch ffmpeg for $file! ($!)");
           my ($v, $a, $s, @c) = (0,0,0);
           while (<probe>)
           {
                   my @streaminfo = split(/,/, $_);
                   push(@c, $streaminfo[2]) if ($streaminfo[5] eq "video");
                   $a++ if ($streaminfo[5] eq "audio");
                   $s++ if ($streaminfo[5] eq "subtitle");
           }
           close PROBE;
           $v = scalar @c;
           if (scalar @c eq 1 and $c[0] eq "ansi")
           {
                   warn("Text file detected, skipping...\n");
                   next;
           }
           warn("$file: Video Streams: $v, Audio Streams: $a, Subtitle Streams: $s, Video Codec(s): " . join (", ", @c) . "\n");
           if (scalar @c > 1)
           {
                   warn("$file has more than one video stream, bailing!\n");
                   next;
           }
           if ($c[0] eq "hevc")
           {
                   warn("HEVC detected for $file ...converting to AVC...\n");
                   system("mkdir -p h265");
                   my @params = ("-hide_banner", "-threads 2");
                   push(@params, "-map 0") if ($a > 1 or $s > 1 or $v > 1);
                   push(@params, "-c:a copy") if ($a);
                   push(@params, "-c:s copy") if ($s);
                   push(@params, "-c:v libx264 -pix_fmt yuv420p") if ($v);
                   if (system("mv '$file' 'h265/$file'"))
                   {
                           warn("Error moving $file -> h265/$file\n");
                           next;
                   }
                   if (system("ffmpeg -xerror -i 'h265/$file' " . join(" ", @params) . " '$file' 2>/dev/null"))
                   {
                           warn("FFMPEG ERROR.  Cannot convert $file restoring original...\n");
                           system("mv 'h265/$file' '$file'");
                           next;
                   }
           } else {
                   warn("$file doesn't appear to need converting... Skipping...\n");
           }
    }
    close DIR;
    </probe></dir>

    The script performs perfectly - as long as it is run from within the directory containing the media.

    My question : Can this script be modified to run recursively from the root directory ? How ?

    Thanks in advance.

    (Michelle’s script can be seen here : http://www.michellesullivan.org/blog/1636)

  • What could be causing processes to be left behind ?

    11 novembre 2015, par Alex

    I’m using the Process class to spawn a process (in particular, I’m using ffmpeg.exe to convert some video files). This ffmpeg process spawns more processes (on my computer, the total is 4, I’m guessing one per CPU core ?). If it matters, I’m doing this in a Windows service, although the problem also occurs when just debugging in Visual Studio, so I don’t think it does matter.

    The main ffmpeg process runs as expected and exits, causing the WaitForExit() call to return. Except, unlike when run normally (i.e. in a command prompt), the three processes that were spawned hang around. And they keep hanging around until the process that spawned the original ffmpeg.exe process (i.e. my service) is ended.

    Any ideas what this could be about ?

    My `ProcessStartInfo looks like this :

    _processStartInfo = new ProcessStartInfo(process, string.Join(" ", parameters))
    {
       UseShellExecute = false,
       CreateNoWindow = true,
       RedirectStandardOutput = true,
       RedirectStandardError = true
    };

    I launch the Process like this :

    _process = Process.Start(_processStartInfo);

    _outputReceivedHandler = (sender, e) =>
    {
       if (OutputData != null) OutputData(e.Data);
    };
    _process.OutputDataReceived += _outputReceivedHandler;

    _errorReceivedHandler = (sender, e) =>
    {
       if (ErrorData != null) ErrorData(e.Data);
    };
    _process.ErrorDataReceived += _errorReceivedHandler;

    _exitHandler = (sender, e) =>
    {
       if (Exited != null) Exited();
    };
    _process.EnableRaisingEvents = true;
    _process.Exited += _exitHandler;

    _process.Start();

    _process.BeginOutputReadLine();
    _process.BeginErrorReadLine();

    If it’s relevant, OutputData, ErrorData and Exited are Action<string></string>, Action<string></string> and Action, respectively.

    The reason I’m keeping the various handlers around is so that I can do this :

    private bool _disposed;
    public void Dispose()
    {
       Dispose(true);
       GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
       if (_disposed || !disposing) return;

       if (_outputReceivedHandler != null) _process.OutputDataReceived -= _outputReceivedHandler;
       if (_errorReceivedHandler != null) _process.ErrorDataReceived -= _errorReceivedHandler;
       if (_exitHandler != null) _process.Exited -= _exitHandler;
       if (_process != null) _process.Dispose();

       _disposed = true;
    }

    Though it hasn’t made a difference whether or not I use Dispose(), the problem still occurs.

  • Solved - FFMPEG to Youtube Live - YouTube is not currently receiving data [duplicate]

    14 mars 2018, par Mickael Tzanakakis

    This question already has an answer here :

    Since a while, I would like to stream a video to the Youtube Live with FFMPEG. I tried a lot of configurations differents but nothing to the Youtube Dashboard. Every time Youtube feel something :

    Launch in progress

    and finally :

    "YouTube is not currently receiving
    data for this stream. If you believe this is incorrect, ensure you’re
    sending a stream and that it is configured with the correct stream
    key."

    I tried those scripts :

    https://gist.github.com/olasd/9841772

    https://github.com/scivision/PyLivestream

    and a lot ffmpeg command but ... no result.

    Exemple :

    ffmpeg -r 24 -f image2 -s 1920x1080 -i test.mp4 -vcodec libx264 -crf 25 -pix_fmt yuv420p -f flv rtmp://a.rtmp.youtube.com/live2/KEY

    ffmpeg -re -i test.mp4 -c:v libx264 -preset veryfast -maxrate 3000k \ -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 \ -ar 44100 -f flv rtmp://a.rtmp.youtube.com/live2/KEY

    If I replace rtmp ://a.rtmp.youtube.com/live2/ by "stream.flv" for exemple, I have the good result in this file.

    Unfortunately the differents topic on this didn’t help me ;
    Any idea please ?

    Thank you !

    PS : I success only with a desktop software : OBS Studio but is not my goal.