Recherche avancée

Médias (1)

Mot : - Tags -/lev manovitch

Autres articles (50)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

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

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (8326)

  • Node.js - I keep getting the following error : Error : ffmpeg stream : write EPIPE

    14 août 2020, par Kyky

    I'm currently programming a Discord bot using discord.js, and I'm using ytdl-core to play music. Here is the program I'm using to play music :

    



    const {google} = require('googleapis');
const ytdl = require('ytdl-core');
// Initialise Google API
const youtube = google.youtube({
    version: 'v3',
    auth: MyAuth
});
musicQueue = [] // Queue for playing music
dispatcher = null; // Transmits voice packets from stream

module.exports = {
    name: "play",

    async execute(msg, args) { // msg is a Discord Message
        // Play music and music queued after
        async function playAndQueue(stream) {

            // Join voice channel
            voiceChannel = client.channels.cache.find(channel => channel.type === "voice" && channel.name === "music-channel");
            voiceConnection = voiceChannel.join();

            dispatcher = await voiceConnection.play(stream, {volume: 0.3}); // Decrease volume to prevent clipping

            // When music stops
            dispatcher.on("finish", async reason => {
                if (musicQueue[0]) { // Still have music queued
                    const nextVideoLink = musicQueue[0]; // Next video to play
                    const stream = ytdl(nextVideoLink, {filter: 'audioonly'});

                    playAndQueue(stream);
                    dispatcherInfo = await ytdl.getInfo(nextVideoLink);
                    musicQueue.shift();
                } else { // No music to play
                    dispatcher = null;
                    dispatcherInfo = null;
                }
            });

            dispatcher.on("error", console.log);
            dispatcher.on("debug", console.log);

        }

        // Search Youtube using args
        const youtubeSearchResult = await youtube.search.list({
            part: 'snippet',
            type: 'video', // We do not want channels or playlists
            q: args.join(' '),
            maxResults: 1 // We only need first search result
        });
        const youtubeVideo = youtubeSearchResult.data.items[0];
        if (! youtubeVideo) {
            msg.channel.send("Error: Could not find any music matching search.");
            return;
        }

        const videoLink = `https://www.youtube.com/watch?v=${youtubeVideo.id.videoId}`; // Link to video

        const stream = ytdl(videoLink, {filter: 'audioonly'});
        const videoInfo = await ytdl.getInfo(videoLink);


        if (dispatcher) { // Currently playing music
            musicQueue.push(videoLink);
            msg.channel.send(`**${videoInfo.title}** has been added into the queue!`);
        } else {
            playAndQueue(stream);
            dispatcherInfo = videoInfo;
            msg.channel.send(`Currently playing **${videoInfo.title}**!`);
        }
    }
}


    



    However, when I try to run the program on Heroku, I get this error :

    



    ffmpeg stream: write EPIPE
    at WriteWrap.onWriteComplete [as oncomplete (internal/stream_base_commons.js:92:16) {
  errno: 'EPIPE',
  code: 'EPIPE',
  syscall: 'write'
}


    



    What can I do ?

    


  • Error in http dynamic streaming TypeError - Error #1009

    25 octobre 2014, par internetdoping

    I am making mutli-bitrate streaming in FMS and FFMPGE.
    In FFMPEG I create 4 bitrates of source video and publish it on the FMS through RTMP protocol (rtmp://my-server/livepkgr/mystreamName1?adbe-live-event=liveevent).

    Now all configurations are working currently but sometimes I get this error :
    1- TypeError - Error #1009

    This is my FFMPEG syntaxt to create multi-bitrate :

    ffmpeg -re -i j:\movie\warz.mkv
    -preset ultrafast -threads 1 -vcodec libx264 -b:v 720k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 856*360 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation720p?adbe-live-event=relation
    -preset ultrafast -threads 1 -vcodec libx264 -b:v 600k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 856*360 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation360p?adbe-live-event=relation
    -preset ultrafast -threads 1 -vcodec libx264 -b:v 350k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 570*240 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation240p?adbe-live-event=relation
    -preset ultrafast -threads 1 -vcodec libx264 -b:v 98k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 342*144 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation144p?adbe-live-event=relation
    -preset ultrafast -threads 1 -vcodec libx264 -b:v 98k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 342*144 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation98p?adbe-live-event=relation

    and this is my F4M file :

    <manifest xmlns="http://ns.adobe.com/f4m/2.0">
    <dvrinfo beginoffset="0" endoffset="1800"></dvrinfo>
    <baseurl>http://12.11.1.2/hds-live/livepkgr/_definst_/relation</baseurl>
    <media href="relation360p.f4m" bitrate="600"></media>
    <media href="relation240p.f4m" bitrate="350"></media>
    <media href="relation144p.f4m" bitrate="128"></media>
    <media href="relation720p.f4m" bitrate="1932"></media>
    <media href="relation98p.f4m" bitrate="98"></media>
    </manifest>

    Please advise me to fix this problem.
    Any help will be appreciated.

  • Parse folder name, generate GIF from images inside using ffmpeg

    16 janvier 2023, par BestMordaEver

    I have 150 folders with some nasty folder structure. Inside are animation frames helpfully named 1.png, 2.png and so on. I need to generate gifs from those images and have them named properly. Here's how I'd handle this case by case :

    &#xA;

    Folder ./dragon/raw/bodies/dragon/green/old/5/down/idle has 25 .png files. I run the following commands :

    &#xA;

    # pngs to gif&#xA;ffmpeg -framerate 12 -start_number 1 -i ./dragon/raw/bodies/dragon/green/old/5/down/idle/%d.png dragon-green-old-5-down-idle-intermediate.gif&#xA;&#xA;# gif to boomerang gif&#xA;ffmpeg -i dragon-green-old-5-down-idle-intermediate.gif -filter_complex "[0]trim=start_frame=1:end_frame=29,setpts=PTS-STARTPTS,reverse[r];[0][r]concat=n=2:v=1:a=0,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" dragon-green-old-5-down-idle.gif&#xA;&#xA;# remove the intermediate gif&#xA;rm dragon-green-old-5-down-idle-intermediate.gif&#xA;

    &#xA;

    Note : relevant part of the name for gif is whatever's after /raw/bodies

    &#xA;

    Question : how do I put this in a loop that would iterate over all the nested folders, parse their names and feed the result in the commands above ?

    &#xA;

    Bonus question : is there a way to merge the two commands and create the boomerang gif immediately, removing the need in intermediate files ?

    &#xA;