Recherche avancée

Médias (91)

Autres articles (57)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

Sur d’autres sites (12998)

  • Is there a way to use youtube-dl in async

    8 octobre 2024, par Stam Kaly

    I have an application where I use zmq with asyncio to communicate with the clients who have the ability to download a video with youtube-dl to the server. I tried adding await to youtube_dl's download function but it gave me an error since it was not a coroutine. My code right now is simply looking like this :

    



    import asyncio
import youtube_dl


async def networking_stuff():
    download = True
    while True:
        if download:
            print("Received a request for download")
            await youtube_to_mp3("https://www.youtube.com/watch?v=u9WgtlgGAgs")
            download = False
        print("Working..")
        await asyncio.sleep(2)


async def youtube_to_mp3(url):
    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }]
    }

    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download([url])


loop = asyncio.get_event_loop()
loop.create_task(networking_stuff())
loop.run_forever()


    



    which gives the following output :

    



    Received a request for download
[youtube] u9WgtlgGAgs: Downloading webpage
[youtube] u9WgtlgGAgs: Downloading video info webpage
[youtube] u9WgtlgGAgs: Extracting video information
[youtube] u9WgtlgGAgs: Downloading MPD manifest
[download] Destination: The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.webm
[download] 100% of 4.20MiB in 00:03
[ffmpeg] Destination: The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.mp3
Deleting original file The Cardigans - My Favourite Game “Stone Version”-u9WgtlgGAgs.webm (pass -k to keep)
Working..
Working..
....
Working..
Working..


    



    whereas I would expect the Working.. message to be printed in between youtube-dl's messages as well. Am I missing something here or is this impossible with async/await ? Is ffmpeg blocking ? If so, can I run the download in async without converting to mp3 or is using threads the only way ?

    


  • Unknown issue with Discord.js and ytdl, completely skips playing audio

    21 novembre 2017, par Gman0064

    One of the commands I have for my Discord bot is to play a predefined music clip in the current user’s voice channel. The bot can connect, but rather than playing the song, it instantaneously leaves. I’ve tried using both connection.playStream as well as connection.playFile, and both seem to return the same (lack of) output. Am I missing some sort of dependency or is my code just written incorrectly ? Any help would be greatly appreciated !

    const Discord = require('discord.js');
    const ytdl = require('ytdl-core');
    const client = new Discord.Client();
    const streamOptions = { seek: 0, volume: 1};

    client.on('ready', () => {
     console.log('Login Success');
    });

    client.on('message', message => {
     if (message.content === '$vaporwave') {
       if (!message.guild) return;
       if(message.member.voiceChannel) {
         message.member.voiceChannel.join().then(connection => {
           console.log("joined channel");
           //const stream = ytdl('https://www.youtube.com/watch?v=cU8HrO7XuiE', { filter : 'audioonly' });
           const dispatcher = connection.playFile('./mcp420.mp3');
           //const dispatcher = connection.playStream(stream, streamOptions);
           dispatcher.on("end", end => {
             console.log("left channel");
             message.member.voiceChannel.leave();
           });
         }).catch(err => console.log(err));
       }
     }
    });
    • NPM v4.6.1
    • Node.js v8.9.1
    • FFMPEG v3.2.8-1
  • How does ffmpeg read stdin pipe ?

    17 novembre 2017, par ciclopez

    I’m working on a Python script that generates an image sequence based on user real time remote interaction, and uses ffmpeg to compress and stream this image sequence over the network for the user to watch it.
    As soon as an image is generated the script writes it to ffmpeg’s stdin and this action is repeated inside a loop to form a video.

    I was wondering what happens when ffmpeg is busy processing the previous image when I write to stdin.

    • Does the .stdin.write() command block execution until ffmpeg finishes processing the previous image ? (Consequence of the pipe buffer filling up)
    • What’s the buffer size of subprocess.PIPE ?
    • Is it editable ?
    • Is it possible to overwrite this buffer if it’s full, instead of blocking execution ?
    • Does ffmpeg continually read it’s input in a parallel process and buffers it until it’s free to take care of it ?
    • If that’s the case, what’s the size of ffmpeg’s input buffer and how can I change it ?

    I’m asking this because I want to fully understand how the data travels between Python and ffmpeg to reduce the latency to its minimum.

    Here is the part of the code I’m using to start ffmpeg :

    cmd = ['ffmpeg',
       '-f', 'rawvideo',
       '-s', '%dx%d'%(width, height),
       '-pix_fmt', 'rgba',
       '-r', '%d'%fps,
       '-i', '-',
       '-an',
       '-vcodec', 'libx264',
       '-tune', 'zerolatency',
       '-preset', 'ultrafast',
       '-bf', '0',
       '-f', 'mpegts',
       'udp://xxx.xxx.xxx.xxx:xxxxx']

    proc = subprocess.Popen(cmd, stdin=subprocess.PIPE)

    And this is what I call inside a loop when I want to pass an image to ffmpeg :

    proc.stdin.write(image)