Recherche avancée

Médias (0)

Mot : - Tags -/objet éditorial

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (105)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (5184)

  • Capture FFMPEG output

    6 janvier 2024, par Andrew Ensley

    I need to read the output from ffmpeg in order to even try the solution to my question from yesterday. This is a separate issue from my problem there, so I made a new question.

    



    How the heck do I get the output from an ffmpeg -i command in PHP ?

    



    This is what I've been trying :

    



    &lt;?PHP&#xA;    error_reporting(E_ALL);&#xA;    $src = "/var/videos/video1.wmv";&#xA;    $command = "/usr/bin/ffmpeg -i " . $src;&#xA;    echo "<b>",$command,"</b><br />";&#xA;    $command = escapeshellcmd($command);&#xA;&#xA;    echo "backtick:<br /><pre>";&#xA;    `$command`;&#xA;&#xA;    echo "</pre><br />system:<br /><pre>";&#xA;    echo system($command);&#xA;&#xA;    echo "</pre><br />shell_exec:<br /><pre>";&#xA;    echo shell_exec($command);&#xA;&#xA;    echo "</pre><br />passthru:<br /><pre>";&#xA;    passthru($command);&#xA;&#xA;    echo "</pre><br />exec:<br /><pre>";&#xA;    $output = array();&#xA;    exec($command,$output,$status);&#xA;    foreach($output AS $o)&#xA;    {&#xA;            echo $o , "<br />";&#xA;    }&#xA;    echo "</pre><br />popen:<br /><pre>";&#xA;    $handle = popen($command,&#x27;r&#x27;);&#xA;    echo fread($handle,1048576);&#xA;    pclose($handle);&#xA;    echo "</pre><br />";&#xA;?>&#xA;

    &#xA;&#xA;

    This is my output :

    &#xA;&#xA;

    <b>/usr/bin/ffmpeg -i /var/videos/video1.wmv</b><br />&#xA;backtick:<br />&#xA;    <pre></pre><br />&#xA;system:<br />&#xA;    <pre></pre><br />&#xA;shell_exec:<br />&#xA;    <pre></pre><br />&#xA;passthru:<br />&#xA;    <pre></pre><br />&#xA;exec:<br />&#xA;    <pre></pre><br />&#xA;popen:<br />&#xA;    <pre></pre><br />&#xA;

    &#xA;&#xA;

    I don't get it. safe_mode is off. There's nothing in disable_functions. The directory is owned by www-data (the apache user on my Ubuntu system). I get a valid status back from exec() and system() and running the same command from the command line give me tons of output. I feel like I must be missing something obvious but I have no idea what it is.

    &#xA;

  • FFMPEG Encoding a video from a Readable stream

    4 novembre 2022, par Michael Aubry

    I'm facing an issue with the seeked event in Chrome. The issue seems to be due to how the video being seeked is encoded.

    &#xA;

    The problem seems to occur most frequently when using ytdl-core and piping a Readable stream into an FFMPEG child process.

    &#xA;

    let videoStream: Readable = ytdl.downloadFromInfo(info, {&#xA;  ...options,&#xA;  quality: "highestvideo"&#xA;});&#xA;

    &#xA;

    With ytdl-core in order to get the highest quality you must combine the audio and video. So here is how I am doing it.

    &#xA;

    const ytmux = (link, options: any = {}) => {&#xA;  const result = new stream.PassThrough({&#xA;    highWaterMark: options.highWaterMark || 1024 * 512&#xA;  });&#xA;&#xA;  ytdl.getInfo(link, options).then((info: videoInfo) => {&#xA;    let audioStream: Readable = ytdl.downloadFromInfo(info, {&#xA;      ...options,&#xA;      quality: "highestaudio"&#xA;    });&#xA;    let videoStream: Readable = ytdl.downloadFromInfo(info, {&#xA;      ...options,&#xA;      quality: "highestvideo"&#xA;    });&#xA;    // create the ffmpeg process for muxing&#xA;    let ffmpegProcess: any = cp.spawn(&#xA;      ffmpegPath.path,&#xA;      [&#xA;        // supress non-crucial messages&#xA;        "-loglevel",&#xA;        "8",&#xA;        "-hide_banner",&#xA;        // input audio and video by pipe&#xA;        "-i",&#xA;        "pipe:3",&#xA;&#xA;        "-i",&#xA;        "pipe:4",&#xA;        // map audio and video correspondingly&#xA;&#xA;        // no need to change the codec&#xA;        // output mp4 and pipe&#xA;        "-c:v",&#xA;        "libx264",&#xA;        "-x264opts",&#xA;        "fast_pskip=0:psy=0:deblock=-3,-3",&#xA;        "-preset",&#xA;        "veryslow",&#xA;        "-crf",&#xA;        "18",&#xA;        "-c",&#xA;        "copy",&#xA;        "-pix_fmt",&#xA;        "yuv420p",&#xA;        "-movflags",&#xA;        "frag_keyframe&#x2B;empty_moov",&#xA;        "-g",&#xA;        "300",&#xA;        "-f",&#xA;        "mp4",&#xA;&#xA;        "-map",&#xA;        "0:v",&#xA;&#xA;        "-map",&#xA;        "1:a",&#xA;&#xA;        "pipe:5"&#xA;      ],&#xA;      {&#xA;        // no popup window for Windows users&#xA;        windowsHide: true,&#xA;        stdio: [&#xA;          // silence stdin/out, forward stderr,&#xA;          "inherit",&#xA;          "inherit",&#xA;          "inherit",&#xA;          // and pipe audio, video, output&#xA;          "pipe",&#xA;          "pipe",&#xA;          "pipe"&#xA;        ]&#xA;      }&#xA;    );&#xA;&#xA;    audioStream.pipe(ffmpegProcess.stdio[4]);&#xA;    videoStream.pipe(ffmpegProcess.stdio[3]);&#xA;    ffmpegProcess.stdio[5].pipe(result);&#xA;  });&#xA;  return result;&#xA;};&#xA;

    &#xA;

    I am playing around with tons of different arguments. The result of this video gets uploaded to a Google Bucket. Then when seeking in Chrome I am getting some issues with certain frames, they are not being seeked.

    &#xA;

    When I pass it through FFMPEG locally and re-encode it, then upload it, I notice there are no issues.

    &#xA;

    Here is an image comparing the two results when running ffmpeg -i FILE (the one on the left works fine and the differences are minor)

    &#xA;

    enter image description here

    &#xA;

    I tried adjusting the arguments in the muxer code and am continuing to try and compare with the re-encoded video. I have no idea why this is happening, something to do with the frames.

    &#xA;

  • How to avoid downloading the same video with different file extension (remux) in yt-dlp

    23 décembre 2022, par Daniel

    This is the command I'm using to download my videos :&#xA;yt-dlp —remux "webm>avi" -o "%(upload_date)s %(title)s.%(ext)s" -f bv[format !*=248] -a List.txt

    &#xA;

    I have text files with tons of links&#xA;So, if the videos are already downloaded in avi format&#xA;yt-dlp doesn't detect it, instead it downloads the video again creating a webm.part file, then it remuxes the file and overwrites the old avi downloaded video

    &#xA;

    I know the cause of this is the ".%(ext)s" command but I cannot remove that part

    &#xA;

    So what I need is for yt-dlp to recognize the file name instead of the extension, because from time to time I will need to check those video lists again with yt-dlp, to check for missing videos, or if I add new link videos to those lists

    &#xA;