Recherche avancée

Médias (91)

Autres articles (47)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

Sur d’autres sites (8618)

  • Elegant early exit from a spawned ffmpeg process in C

    21 octobre 2016, par jackson80

    I have a program where I build an ffmpeg command string to capture videos with options input through a gtk3 gui. Once I have all my options selected, I spawn a process with the ffmpeg command string. And I add a child watch to tell me when the process has completed.

     // Spawn child process
     ret = g_spawn_async (NULL, argin, NULL, G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &pid1, NULL);
     if ( !ret )
     {
       g_error ("SPAWN FAILED");
       return;
     }

    /* Add watch function to catch termination of the process.  This function
      * will clean any remnants of process */
     g_child_watch_add (pid1, (GChildWatchFunc)cb_child_watch, widget );

    Executing ffmpeg from a terminal using a command line, the program will give an option to input a "q" at the terminal to end the ffmpeg process early.
    Is there any way to send a "q" to that spawned process to elegantly end the ffmpeg ? I’m fairly sure I could kill the process using the process id, but I would rather stop it using a mechanism that allows ffmpeg to gracefully exit..
    This is running Centos 7, kernel 4.7.5, ffmpeg version 3.0.2.
    Since I can still access the terminal where the ffmpeg output is displayed, I’ve tried typing a "q", but it has no effect on the process.

  • AttributeError : 'FFmpegAudio' object has no attribute '_process' while trying to play audio from URL

    13 août 2022, par jmcamacho7

    I can't find any solution online and I don't know what's wrong.

    


    My code is : (Not pasting the URL getting since that works fine)

    


    from urllib import parse, request
import re
import pafy
from discord import FFmpegPCMAudio, PCMVolumeTransformer

FFMPEG_OPTIONS = {
    'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'
}

@bot.command(pass_context=True)
async def play(ctx, * , search):
  query_string = parse.urlencode({'search_query': search})
  html_content = request.urlopen('http://www.youtube.com/results?' + query_string)
  search_results=re.findall('watch\?v=(.{11})',html_content.read().decode('utf-8'))
  print(search_results[0])
  
  if(ctx.author.voice):
    channel = ctx.message.author.voice.channel
    await ctx.send("https://www.youtube.com/watch?v="+search_results[0])  
    url = "https://www.youtube.com/watch?v="+search_results[0]
    conn = await channel.connect()
    conn.play(discord.FFmpegAudio(url, **FFMPEG_OPTIONS))
  else:
    await ctx.send("Necesitas estar en un canal de audio para usar este comando")


    


    It just gives me this error everytime I try it :

    


    Traceback (most recent call last):
  File "/home/runner/HakuBot/venv/lib/python3.8/site-packages/discord/player.py", line 103, in __del__
    self.cleanup()
  File "/home/runner/HakuBot/venv/lib/python3.8/site-packages/discord/player.py", line 154, in cleanup
    proc = self._process
AttributeError: 'FFmpegAudio' object has no attribute '_process'


    


    Anyway to solve this ?

    


  • Transcode HLS Segments individually using FFMPEG

    27 mai 2013, par rayh

    I am recording a continuous, live stream to a high-bitrate HLS stream. I then want to asynchronously transcode this to different formats/bitrates. I have this working, mostly, except audio artefacts are appearing between each segment (gaps and pops).

    Here is an example ffmpeg command line :

    ffmpeg -threads 1 -nostdin -loglevel verbose \
      -nostdin -y -i input.ts -c:a libfdk_aac \
      -ac 2 -b:a 64k -y -metadata -vn output.ts

    Inspecting an example sound file shows that there is a gap at the end of the audio :

    End

    And the start of the file looks suspiciously attenuated (although this may not be an issue) :

    Start

    My suspicion is that these artefacts are happening because transcoding are occurring without the context of the stream as a whole.

    Any ideas on how to convince FFMPEG to produce audio that will fit back into a HLS stream ?

    ** UPDATE 1 **

    Here are the start/end of the original segment. As you can see, the start still appears the same, but the end is cleanly ended at 30s. I expect some degree of padding with lossy encoding, but I there is some way that HLS manages to do gapless playback (is this related to iTunes method with custom metadata ?)

    Original Start
    Original End

    ** UPDATED 2 **

    So, I converted both the original (128k aac in MPEG2 TS) and the transcoded (64k aac in aac/adts container) to WAV and put the two side-by-side. This is the result :

    Side-by-side start
    Side-by-side end

    I'm not sure if this is representative of how a client will play it back, but it seems a bit odd that decoding the transcoded one introduces a gap at the start and makes the segment longer. Given they are both lossy encoding, I would have expected padding to be equally present in both (if at all).

    ** UPDATE 3 **

    According to http://en.wikipedia.org/wiki/Gapless_playback - Only a handful of encoders support gapless - for MP3, I've switched to lame in ffmpeg, and the problem, so far, appears to have gone.

    For AAC (see http://en.wikipedia.org/wiki/FAAC), I have tried libfaac (as opposed to libfdk_aac) and it also seems to produce gapless audio. However, the quality of the latter isn't that great and I'd rather use libfdk_aac is possible.