Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (112)

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

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

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

Sur d’autres sites (7572)

  • Stream to / from FLV

    18 août 2015, par MKN Web Solutions

    Is it possible to stream to an FLV (via exec ffmpeg) and have a client from from that FLV for real time stream (http).

    I’m not sure if this is something of RTMPT, but I’ve seen sites that use FLV to stream. I currently already use HLS and DASH, I’m just trying to experiment with other channels.

  • smoothstreamingenc : Write to a temp file while updating the manifest

    17 août 2013, par Martin Storsjö
    smoothstreamingenc : Write to a temp file while updating the manifest
    

    If a client tries to read the file while it’s being updated, the client
    would get an incomplete manifest. Instead write to a separate temp file
    and atomically rename it to replace the previous one.

    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DBH] libavformat/smoothstreamingenc.c
  • heroku discord.py bot doesn't play music

    30 août 2022, par bon ho

    I'm making music bot with discord.py and using heroku. bot is playing music my localhost but heroku host is not playing music.

    &#xA;

    I found what cause a bug.&#xA;It working nicely in heroku-20, but not working in heroku-22 stack.

    &#xA;

    How can I use heroku-22 stack without error ?&#xA;What can I do ?

    &#xA;

    I'm sorry my english is bad.

    &#xA;

    my code :

    &#xA;

    import youtube_dl&#xA;import discord&#xA;from discord import app_commands,Interaction&#xA;import asyncio&#xA;import os&#xA;&#xA;class MyClient(discord.Client):&#xA;  async def on_ready(self):&#xA;    await self.wait_until_ready()&#xA;    await tree.sync()&#xA;    print(f"login at {self.user}")&#xA;        &#xA;intents= discord.Intents.all()&#xA;client = MyClient(intents=intents)&#xA;tree = app_commands.CommandTree(client)&#xA;&#xA;youtube_dl.utils.bug_reports_message = lambda: &#x27;&#x27;&#xA;ytdl_format_options = {&#xA;    &#x27;format&#x27;: &#x27;bestaudio/best&#x27;,&#xA;    &#x27;outtmpl&#x27;: &#x27;%(extractor)s-%(id)s-%(title)s.%(ext)s&#x27;,&#xA;    &#x27;restrictfilenames&#x27;: True,&#xA;    &#x27;noplaylist&#x27;: True,&#xA;    &#x27;nocheckcertificate&#x27;: True,&#xA;    &#x27;ignoreerrors&#x27;: False,&#xA;    &#x27;logtostderr&#x27;: False,&#xA;    &#x27;quiet&#x27;: True,&#xA;    &#x27;no_warnings&#x27;: True,&#xA;    &#x27;default_search&#x27;: &#x27;auto&#x27;,&#xA;    &#x27;source_address&#x27;: &#x27;0.0.0.0&#x27;,  # bind to ipv4 since ipv6 addresses cause issues sometimes&#xA;}&#xA;&#xA;ffmpeg_options = {&#xA;    &#x27;options&#x27;: &#x27;-vn&#x27;,&#xA;}&#xA;ytdl = youtube_dl.YoutubeDL(ytdl_format_options)&#xA;class YTDLSource(discord.PCMVolumeTransformer):&#xA;    def __init__(self, source, *, data, volume=0.5):&#xA;        super().__init__(source, volume)&#xA;&#xA;        self.data = data&#xA;&#xA;        self.title = data.get(&#x27;title&#x27;)&#xA;        self.url = data.get(&#x27;url&#x27;)&#xA;&#xA;    @classmethod&#xA;    async def from_url(cls, url, *, loop=None, stream=True):&#xA;        loop = loop or asyncio.get_event_loop()&#xA;        data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))&#xA;        if &#x27;entries&#x27; in data:&#xA;            # take first item from a playlist&#xA;            data=data[&#x27;entries&#x27;][0]&#xA;        filename = data[&#x27;url&#x27;] if stream else ytdl.prepare_filename(data)&#xA;        return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)&#xA;queue={}&#xA;@tree.command(name="play", description="play music")&#xA;async def playmusic(interaction:Interaction,url_title:str,playfirst:bool=False):&#xA;  await interaction.response.send_message("I&#x27;m looking for music!!")&#xA;  guild=str(interaction.guild.id)&#xA;  try:&#xA;    queue[guild]&#xA;  except KeyError:&#xA;    queue[guild]=[]&#xA;  if interaction.user.voice is None:&#xA;    await interaction.edit_original_response(content="you must join any voice channel")&#xA;  else:&#xA;    voice_client: discord.VoiceClient = discord.utils.get(client.voice_clients, guild=interaction.guild)&#xA;    if voice_client == None:&#xA;      await interaction.user.voice.channel.connect()&#xA;      voice_client: discord.VoiceClient = discord.utils.get(client.voice_clients, guild=interaction.guild)&#xA;    player = await YTDLSource.from_url(url_title, loop=None)&#xA;    if playfirst and len(queue[guild])>1:&#xA;      queue[guild].insert(1,player)&#xA;    else:&#xA;      queue[guild].append(player)&#xA;    if not voice_client.is_playing():&#xA;      voice_client.play(player,after=None)&#xA;      await interaction.edit_original_response(content=f"{player.title} playing!!")&#xA;    else:&#xA;      await interaction.edit_original_response(content=f"{player.title} enqueued!")&#xA;    await asyncio.sleep(7)&#xA;    await interaction.delete_original_response()&#xA;&#xA;client.run(token)&#xA;

    &#xA;