Recherche avancée

Médias (1)

Mot : - Tags -/publicité

Autres articles (58)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (9111)

  • Is stream-format in h264 related to camera provided stream or is it more like transport thing ?

    13 janvier 2023, par rafauu

    I've got camera that produces video stream in different formats. One of them is h264 encoded stream. I use dshow along with gstreamer to acquire this stream and process it with c++ and send it also via shared memory. My question is related specifically to field stream-format in gst caps. How do I know whether it is byte-stream or avc ? Is it tightly coupled to stream produced by camera or is it like transport thing that I set with gstreamer by my own ? I work with rather complicated commercial specific pipelines that I cannot share full here. When I set in my code gst_caps_set_simple (gstCaps, "stream-format", G_TYPE_STRING, "byte-stream", nullptr); it works but I am not 100% why so I want to clarify that.

    


    I've tried checking information about this specific camera with ffmpeg but I cannot get info about stream-format. Best I got is :
ffmpeg -f dshow -list_options true -i video="nameOfCamera"

    


    (...)
vcodec=h264  min s=128x96 fps=0.015625 max s=768x480 fps=29.97
vcodec=h264  min s=128x96 fps=0.015625 max s=768x576 fps=25
vcodec=h264  min s=128x96 fps=0.015625 max s=768x480 fps=29.97
vcodec=h264  min s=128x96 fps=0.015625 max s=768x576 fps=25
vcodec=h264  min s=128x96 fps=0.015625 max s=768x480 fps=29.97
vcodec=h264  min s=128x96 fps=0.015625 max s=768x576 fps=25
vcodec=h264  min s=128x96 fps=0.015625 max s=768x576 fps=25
(...)


    


  • Trying to install ffmpeg with brew and I keep getting errors related to "dav1d_bottle_manifest"

    13 décembre 2022, par Jonathan Doe

    I am trying to do some basic DSP in python and in order to play some of my audio files I need to install ffmpeg on my computer.

    


    I am running a 2019 macbook pro.

    


    When I run brew intsall ffmpeg -d

    


    I get this on my terminal output

    


    rm: /usr/local/Homebrew/.git/TMP_FETCH_FAILURES: is a directory
rm: /usr/local/Homebrew/.git/TMP_FETCH_FAILURES: is a directory
Running `brew update --auto-update`...


    


    This auto update just runs forever with no updates of any kind. I'm not sure if it is broken or stuck or what.

    


    I try to manually run :

    


     brew update -d


    


    and the update stalls forever on this section :

    


    + [[ -f /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/FETCH_HEAD ]]
+ touch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/FETCH_HEAD
+ [[ -z '' ]]
+ [[ 200 == \3\0\4 ]]
+ [[ -n '' ]]
+ local tmp_failure_file=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/TMP_FETCH_FAILURES
+ rm -f /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/TMP_FETCH_FAILURES
+ [[ -n '' ]]
+ git fetch --tags --force -q origin refs/heads/master:refs/remotes/origin/master


    


    I am having so many problems with brew any help would be appreciated.

    


  • Seeking with ffmpeg options fails or causes delayed playback in Discord bot

    29 août 2022, par J Petersen

    My Discord bot allows users to play a song starting from a timestamp.

    


    The problem is that playback is delayed and audio plays faster and is jumbled if start times >= 30s are set.

    


    Results from testing different start times. Same URL, 30 second duration :

    


    





    


    


    


    


    


    



    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    


    Entered Start Time (s) Playback Delay (s) Song Playback Time (s)
    0 3 30
    30 10 22
    60 17 17
    120 31 2
    150 120 <1

    &#xA;

    &#xA;

    I am setting the start time using ffmpeg_options as suggested in this question.

    &#xA;

    Does anyone understand why the audio playback is being delayed/jumbled ? How can I improve playback delay and allow users to start in the middle of a multi-chapter YouTube video ?

    &#xA;

    Code :

    &#xA;

    import discord&#xA;import youtube_dl&#xA;import asyncio&#xA;&#xA;&#xA;# Suppress noise about console usage from errors&#xA;youtube_dl.utils.bug_reports_message = lambda: ""&#xA;&#xA;&#xA;ytdl_format_options = {&#xA;    "format": "bestaudio/best",&#xA;    "outtmpl": "%(extractor)s-%(id)s-%(title)s.%(ext)s",&#xA;    "restrictfilenames": True,&#xA;    "noplaylist": False,&#xA;    "yesplaylist": True,&#xA;    "nocheckcertificate": True,&#xA;    "ignoreerrors": False,&#xA;    "logtostderr": False,&#xA;    "quiet": True,&#xA;    "no_warnings": True,&#xA;    "default_search": "auto",&#xA;    "source_address": "0.0.0.0",  # Bind to ipv4 since ipv6 addresses cause issues at certain times&#xA;}&#xA;&#xA;ytdl = youtube_dl.YoutubeDL(ytdl_format_options)&#xA;&#xA;&#xA;class YTDLSource(discord.PCMVolumeTransformer):&#xA;    def __init__(self, source: discord.AudioSource, *, data: dict, volume: float = 0.5):&#xA;        super().__init__(source, volume)&#xA;&#xA;        self.data = data&#xA;&#xA;        self.title = data.get("title")&#xA;        self.url = data.get("url")&#xA;&#xA;    @classmethod&#xA;    async def from_url(cls, url, *, loop=None, stream=False, timestamp = 0):&#xA;        ffmpeg_options = {&#xA;            "options": f"-vn -ss {timestamp}"}&#xA;&#xA;        loop = loop or asyncio.get_event_loop()&#xA;&#xA;        data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))&#xA;        if "entries" in data:&#xA;            # Takes the first item from a playlist&#xA;            data = data["entries"][0]&#xA;&#xA;        filename = data["url"] if stream else ytdl.prepare_filename(data)&#xA;        return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)&#xA;&#xA;&#xA;intents = discord.Intents.default()&#xA;&#xA;bot = discord.Bot(intents=intents)&#xA;&#xA;@bot.slash_command()&#xA;async def play(ctx, audio: discord.Option(), seconds: discord.Option(), timestamp: discord.Option()):&#xA;    channel = ctx.author.voice.channel&#xA;    voice = await channel.connect()&#xA;    player = await YTDLSource.from_url(audio, loop=bot.loop, stream=True, timestamp=int(timestamp))&#xA;    voice.play(player)&#xA;    await asyncio.sleep(int(seconds))&#xA;    await voice.disconnect()&#xA;&#xA;token = token value&#xA;bot.run(token)&#xA;

    &#xA;