Recherche avancée

Médias (91)

Autres articles (38)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

Sur d’autres sites (6644)

  • How to stitch(concat) two transport stream with two different resolution and I-frame slices format without loosing resolution and slices information

    2 octobre 2019, par AnkurTank

    I have been trying to test a use case with steam captured from multimedia device and that didn’t work. And then I have been trying to create this specific transport stream for like two days now without success, so requesting some help.

    I need to create transport stream with two different resolution and two different slicing format.

    I divided the task in following steps and in last two steps I need help.

    Step 1 : Download sample video with resolution : 1920x1080.
    I downloaded big buck bunny mp4 .

    Step 2 : Create transport stream with following
    resolution : 1920x720, H264 I frame slices per frame : 1
    I used following ffmpeg commands to do that.

    #Rename file to input.mp4
    $ mv bbb_sunflower_1080p_30fps_normal.mp4 input.mp4
    #Extract transport stream
    $ ffmpeg -i input.mp4 -c copy first.ts

    first.ts is having 1980x720 resolution and one H264 I slice per frame.

    Step 3 : Create another transport stream with smaller resolution using following commands

    #Get mp4 with lower resolution.
    $ ffmpeg -i input.mp4 -s 640x480 temp.mp4
    #Extract trans port stream from mp4
    $ ffmpeg -i temp.mp4 -c copy low_r.ts

    Step 4 : Edit(and re-encode ?) low_r.ts to have two H264 I frame slices.
    I used following command to achieve it.

    $ x264 --slices 4 low_r.ts -o second.ts

    However when I play this second.ts on vlc using following command it doesn’t play

    $ vlc ./second.ts

    And using Elacard StreamEye software when I analyze the transport stream I see that it has 4 H264 I slices in only two times other than that lot of H264 p slices and H264 B slices.
    Need help here to figure out why second.ts doesn’t play and why slicing is not correct.

    Step 5 : Combine both the transport stream without loosing resolution and slicing information.
    Don’t know command for this. Need help here.
    I tried ffmpeg but that combines two stream with different resolution and makes one file with one resolution.

    Any suggestions/pointers would help me proceed. Let me also know if any of the above steps are not fine too.

  • Stream music via Airplay from RaspberryPi

    8 février 2016, par Frank

    For my home automation project on my RaspberryPi with Raspbian, I am looking for a way to stream music from the Raspberry to Airplay devices such as an AppleTv.

    I have found different ideas how to achieve this, however I need help to overcome the last obstacles.

    I have found Node Airtunes where the example file play_ffmpeg.js works very well for me. https://github.com/lperrin/node_airtunes However this works only for a single mp3, I want to stream all sound from my raspberry.

    How can I capture all sound by my raspberry and then send it via such a jscript to my Airplay device (e.g. AppleTV) ? One idea to capture all sound was via ffmpeg, another via gstreamer. Then send this sound via a similar jscript script like play_ffmpeg.js to the Airplay devices.

    Any hints are very well appreciated.

    P.S. I have found Airtunes_Hub which has a similar concept to what I am looking for. However this script just listens to sound output from mopidy plus somehow it doesn’t work for my AppleTV, but for other Airplay devices. The play_ffmpeg.js from further up works perfectly though which is puzzling for me.

    https://github.com/kkckkc/airtunes_hub

    I have furthermore checked out Pulseaudio-raop2 but this doesn’t work for me.

  • heroku-22 stack 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.

    


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

    


    How can I use heroku-22 stack without error ?
What can I do ?

    


    I'm sorry my english is bad.

    


    my code :

    


    import youtube_dl
import discord
from discord import app_commands,Interaction
import asyncio
import os

class MyClient(discord.Client):
  async def on_ready(self):
    await self.wait_until_ready()
    await tree.sync()
    print(f"login at {self.user}")
        
intents= discord.Intents.all()
client = MyClient(intents=intents)
tree = app_commands.CommandTree(client)

youtube_dl.utils.bug_reports_message = lambda: ''
ytdl_format_options = {
    'format': 'bestaudio/best',
    'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
    'restrictfilenames': True,
    'noplaylist': True,
    'nocheckcertificate': True,
    'ignoreerrors': False,
    'logtostderr': False,
    'quiet': True,
    'no_warnings': True,
    'default_search': 'auto',
    'source_address': '0.0.0.0',  # bind to ipv4 since ipv6 addresses cause issues sometimes
}

ffmpeg_options = {
    'options': '-vn',
}
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
class YTDLSource(discord.PCMVolumeTransformer):
    def __init__(self, source, *, data, volume=0.5):
        super().__init__(source, volume)

        self.data = data

        self.title = data.get('title')
        self.url = data.get('url')

    @classmethod
    async def from_url(cls, url, *, loop=None, stream=True):
        loop = loop or asyncio.get_event_loop()
        data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
        if 'entries' in data:
            # take first item from a playlist
            data=data['entries'][0]
        filename = data['url'] if stream else ytdl.prepare_filename(data)
        return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)
queue={}
@tree.command(name="play", description="play music")
async def playmusic(interaction:Interaction,url_title:str,playfirst:bool=False):
  await interaction.response.send_message("I'm looking for music!!")
  guild=str(interaction.guild.id)
  try:
    queue[guild]
  except KeyError:
    queue[guild]=[]
  if interaction.user.voice is None:
    await interaction.edit_original_response(content="you must join any voice channel")
  else:
    voice_client: discord.VoiceClient = discord.utils.get(client.voice_clients, guild=interaction.guild)
    if voice_client == None:
      await interaction.user.voice.channel.connect()
      voice_client: discord.VoiceClient = discord.utils.get(client.voice_clients, guild=interaction.guild)
    player = await YTDLSource.from_url(url_title, loop=None)
    if playfirst and len(queue[guild])>1:
      queue[guild].insert(1,player)
    else:
      queue[guild].append(player)
    if not voice_client.is_playing():
      voice_client.play(player,after=None)
      await interaction.edit_original_response(content=f"{player.title} playing!!")
    else:
      await interaction.edit_original_response(content=f"{player.title} enqueued!")
    await asyncio.sleep(7)
    await interaction.delete_original_response()

client.run(token)