Recherche avancée

Médias (0)

Mot : - Tags -/configuration

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

Autres articles (53)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

Sur d’autres sites (7795)

  • flvdec : Honor the "flv_metadata" option for the "datastream" metadata field

    9 février 2024, par Martin Storsjö
    flvdec : Honor the "flv_metadata" option for the "datastream" metadata field
    

    By default the option "flv_metadata" (internally using the field
    name "trust_metadata") is set to 0, meaning that we don't allocate
    streams based on information in the metadata, only based on
    actual streams we encounter. However the "datastream" metadata field
    still would allocate a subtitle stream.

    When muxing, the "datastream" field is added if either a data stream
    or subtitle stream is present - but the same metadata field is used
    to preemtively create a subtitle stream only. Thus, if the field
    was added due to a data stream, not a subtitle stream, the demuxer
    would create a stream which won't get any actual packets.

    If there was such an extra, empty subtitle stream, running
    avformat_find_stream_info still used to terminate within reasonable
    time before 3749eede66c3774799766b1f246afae8a6ffc9bb. After that
    commit, it no longer would terminate until it reaches the max
    analyze duration, which is 90 seconds for flv streams (see
    e6a084641aada7a2e4672172f2ee26642800a361,
    24fdf7334d2bb9aab0abdbc878b8ae51eb57c86b and
    f58e011a1f30332ba824c155078ca701e29aef63).

    Before that commit (which removed the deprecated AVStream.codec), the
    "st->codecpar->codec_id = AV_CODEC_ID_TEXT", set within the demuxer,
    would get propagated into st->codec->codec_id by numerous
    avcodec_parameters_to_context(st->codec, st->codecpar), then further
    into st->internal->avctx->codec_id by update_stream_avctx within
    read_frame_internal in libavformat/utils.c (demux.c these days).

    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DH] libavformat/flvdec.c
  • node-fluent-ffmpeg conversion to mp3 does not fire any "end" or "finish" event

    27 février 2024, par 1voy

    I am downloading a video using ytdl-core and converting it to mp3 using node-fluent-ffmpeg. It seems that the code after the ffmpeg conversion gets executed before the conversion finishes as trying to upload the .mp3 file to a Google Cloud Storage bucket throws an error. I am trying to detect 'end' or 'finish' events but none are being triggered.

    &#xA;

    Code :

    &#xA;

    ytdl(url?.toString() as string)&#xA;    .once(&#x27;data&#x27;, (data) => {&#xA;      console.log(&#x27;start&#x27;, data);&#xA;    })&#xA;    .on(&#x27;progress&#x27;, async function (progress, downloaded, total) {&#xA;      console.log(parseInt(((downloaded / total) * 100).toString()) &#x2B; &#x27;%&#x27;);&#xA;      &#xA;    })&#xA;    .on(&#x27;finish&#x27;, async function () {&#xA;      console.log(&#x27;Download finished...&#x27;);&#xA;      &#xA;      console.log(&#x27;using ffmpeg to convert into mp3&#x27;);&#xA;      Ffmpeg({ source: `/Users/user/project/server/output/${videoId}.mp4` })&#xA;        .setFfmpegPath(ffmpeg.path)&#xA;        .toFormat(&#x27;mp3&#x27;)&#xA;        .saveToFile(`/Users/user/project/server/output/${videoId}.mp3`)&#xA;        .on(&#x27;finish&#x27;, () => {&#xA;          console.log(&#x27;finished conversion&#x27;);&#xA;        });&#xA;      console.log(&#x27;after ffmpeg mp3 conversion&#x27;);&#xA;&#xA;      const storage = new Storage({&#xA;        keyFilename: `./key.json`,&#xA;      });&#xA;&#xA;      const bucketName = &#x27;bucketname&#x27;;&#xA;      const bucket = storage.bucket(bucketName);&#xA;      let mp3_url;&#xA;      console.log(&#xA;        fs.existsSync(`/Users/user/project/server/output/${videoId}.mp3`)&#xA;      ); // returns false&#xA;      bucket.upload(&#xA;        `/Users/user/project/server/output/${videoId}.mp3`,&#xA;// Error uploading: Error: ENOENT: no such file or directory, open &#x27;/Users/me/project/server/output/RMvenf7E-Dg.mp3&#x27;&#xA;        {&#xA;          destination: `${userId}/${videoId}.mp3`,&#xA;        },&#xA;        function (err, file) {&#xA;          if (err) {&#xA;            console.error(`Error uploading: ${err}`);&#xA;          } else {&#xA;            console.log(`mp3 uploaded to ${bucketName}.`);&#xA;            console.log(file?.publicUrl());&#xA;          }&#xA;        }&#xA;      );&#xA;&#xA;      &#xA;    .pipe(&#xA;      fs.createWriteStream(`/Users/me/project/server/output/${videoId}.mp4`)&#xA;    );&#xA;&#xA;  console.log(&#x27;after download and conversion&#x27;);&#xA;&#xA;  req.on(&#x27;close&#x27;, async () => {&#xA;    res.end();&#xA;  });&#xA;

    &#xA;

    Error uploading: Error: ENOENT: no such file or directory, open &#x27;/Users/polo/makeklips/server/output/RMvenf7E-Dg.mp3&#x27;&#xA;[1] /Users/me/project/server/node_modules/.pnpm/fluent-ffmpeg@2.1.2/node_modules/fluent-ffmpeg/lib/processor.js:182&#xA;[1]           handleExit(new Error(&#x27;ffmpeg exited with code &#x27; &#x2B; code));&#xA;[1]                      ^&#xA;[1] Error: ffmpeg exited with code 1: Output #0, mp3, to &#x27;/Users/me/project/server/output/RMvenf7E-Dg.mp3&#x27;:&#xA;[1] Output file #0 does not contain any stream&#xA;

    &#xA;

  • avcodec : add internal side data wrappers

    17 février 2024, par Niklas Haas
    avcodec : add internal side data wrappers
    

    The signature of these wrappers is more complicated due to a need to
    distinguish between "failed allocating side data" and "side data was
    already present".

    Signed-off-by : Anton Khirnov <anton@khirnov.net>

    • [DH] libavcodec/decode.c
    • [DH] libavcodec/decode.h