Recherche avancée

Médias (91)

Autres articles (36)

  • 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" (...)

  • Submit enhancements and plugins

    13 avril 2011

    If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
    You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.

Sur d’autres sites (6229)

  • Getting "Error while decoding stream #0:0 : Invalid data found when processing input" when using ffmpeg to convert tga to mp4

    22 juin 2020, par Calvin Godfrey

    I've used ffmpeg to convert a bunch of tga files into an mp4 just fine for a few weeks, but it broke for no apparent reason earlier today. I have a pastebin with -loglevel debug here, but the command I use is the same as the one that has worked before — ffmpeg -framerate 60 -i triangle%03d.tga output.mp4, and now it's broken.

    


    The tga files are manually created by a C program that I wrote, but I don't think it's a problem with the file header/format because it hasn't been a problem with ffmpeg before before and I can open the tga files fine with eog and a tga viewer on Windows. Just in case it matters, here's the start of a hexdump for one of the files :

    


    0000000 0000 0002 0000 0000 0000 0000 0780 0438
0000010 2018 ceeb eb87 87ce ceeb eb87 87ce ceeb
0000020 eb87 87ce ceeb eb87 87ce ceeb eb87 87ce
0000030 ceeb eb87 87ce ceeb eb87 87ce ceeb eb87
0000040 87ce ceeb eb87 87ce ceeb eb87 87ce ceeb
0000050 eb87 87ce ceeb eb87 87ce ceeb eb87 87ce
0000060 ceeb eb87 87ce ceeb eb87 87ce ceeb eb87
0000070 87ce ceeb eb87 87ce ceeb eb87 87ce ceeb
0000080 eb87 87ce ceeb eb87 87ce ceeb eb87 87ce
0000090 ceeb eb87 87ce ceeb eb87 87ce ceeb eb87


    


    Would appreciate any help on fixing the ffmpeg (or alternative ways to convert tga to mp4).

    


  • FFmpeg Error "No such filter : 'libvmaf' Mac

    4 janvier 2021, par ringola27

    I want to use FFmpeg to calculate PSNR for video sequences.
At first I installed libvmaf with the instruction from here and here. I installed ffmpeg like here. I tried for a test :

    



    ffmpeg -i output4.mpg -i output1.mpg -lavfi libvmaf -f null -


    



    But I get an Error (below). I think I could solve it with ./configure --enable-libvmaf --enable-version3 or ./configure --enable-libvmaf but unfortunately I can not run it (I don't know how).

    



    I hope anyone can help me to solve this problem.

    



    ffmpeg version 4.2.3 Copyright (c) 2000-2020 the FFmpeg developers
  built with Apple clang version 11.0.3 (clang-1103.0.32.59)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.3 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags=-fno-stack-check --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mpeg, from 'output4.mpg':
  Duration: 00:00:09.88, start: 0.533367, bitrate: 363 kb/s
    Stream #0:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x288 [SAR 178:163 DAR 1958:1467], 104857 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
Input #1, mpeg, from 'output1.mpg':
  Duration: 00:00:10.01, start: 0.533367, bitrate: 345 kb/s
    Stream #1:0[0x1e0]: Video: mpeg1video, yuv420p(tv), 352x288 [SAR 178:163 DAR 1958:1467], 104857 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 29.97 tbc
[AVFilterGraph @ 0x7ffedbe23180] No such filter: 'libvmaf'
Error initializing complex filters.
Invalid argument


    


  • I tried programming a discord bot for music, it joins the channel, it apparently "speaks" but i can't hear anything

    2 avril 2020, par borax

    I tried to code it alone, but I got the same problem, then I copied the code from https://gabrieltanner.org/blog/dicord-music-bot and it persists. I have downloaded FFmpeg, but I still think the problem lies there. Any suggestions ? (it's my first time here, I don't know how much of the code is relevant, also, i get this Error : FFmpeg/avconv not found !)

    



    const Discord = require('discord.js');
const client = new Discord.Client();

const ytdl = require("ytdl-core");

const token = 'REDACTED';

const prefix = '$';

var version = '1.1.2';

var servers = {};

const queue = new Map();

client.on('ready', () => {
    console.log('BOT is online');
})
client.once("ready", () => {
    console.log("Ready!");
  });

  client.once("reconnecting", () => {
    console.log("Reconnecting!");
  });

  client.once("disconnect", () => {
    console.log("Disconnect!");
  });

  client.on("message", async message => {
    if (message.author.bot) return;
    if (!message.content.startsWith(prefix)) return;

    const serverQueue = queue.get(message.guild.id);

    if (message.content.startsWith(`${prefix}play`)) {
      execute(message, serverQueue);
      return;
    } else if (message.content.startsWith(`${prefix}skip`)) {
      skip(message, serverQueue);
      return;
    } else if (message.content.startsWith(`${prefix}stop`)) {
      stop(message, serverQueue);
      return;
    } else {
      message.channel.send("You need to enter a valid command!");
    }
  });

  async function execute(message, serverQueue) {
    const args = message.content.split(" ");

    const voiceChannel = message.member.voice.channel;
    if (!voiceChannel)
      return message.channel.send(
        "You need to be in a voice channel to play music!"
      );
    const permissions = voiceChannel.permissionsFor(message.client.user);
    if (!permissions.has("CONNECT") || !permissions.has("SPEAK")) {
      return message.channel.send(
        "I need the permissions to join and speak in your voice channel!"
      );
    }

    const songInfo = await ytdl.getInfo(args[1]);
    const song = {
      title: songInfo.title,
      url: songInfo.video_url
    };

    if (!serverQueue) {
      const queueContruct = {
        textChannel: message.channel,
        voiceChannel: voiceChannel,
        connection: null,
        songs: [],
        volume: 5,
        playing: true
      };

      queue.set(message.guild.id, queueContruct);

      queueContruct.songs.push(song);

      try {
        var connection = await voiceChannel.join();
        queueContruct.connection = connection;
        play(message.guild, queueContruct.songs[0]);
      } catch (err) {
        console.log(err);
        queue.delete(message.guild.id);
        return message.channel.send(err);
      }
    } else {
      serverQueue.songs.push(song);
      return message.channel.send(`${song.title} has been added to the queue!`);
    }
  }

  function skip(message, serverQueue) {
    if (!message.member.voice.channel)
      return message.channel.send(
        "You have to be in a voice channel to stop the music!"
      );
    if (!serverQueue)
      return message.channel.send("There is no song that I could skip!");
    serverQueue.connection.dispatcher.end();
  }

  function stop(message, serverQueue) {
    if (!message.member.voice.channel)
      return message.channel.send(
        "You have to be in a voice channel to stop the music!"
      );
    serverQueue.songs = [];
    serverQueue.connection.dispatcher.end();
  }

  function play(guild, song) {
    const serverQueue = queue.get(guild.id);
    if (!song) {
      serverQueue.voiceChannel.leave();
      queue.delete(guild.id);
      return;
    }

    const dispatcher = serverQueue.connection
      .play(ytdl(song.url))
      .on("finish", () => {
        serverQueue.songs.shift();
        play(guild, serverQueue.songs[0]);
      })
      .on("error", error => console.error(error));
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
    serverQueue.textChannel.send(`Start playing: **${song.title}**`);
  }

client.login(token);