Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (55)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • 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

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

Sur d’autres sites (7059)

  • FFmpegPCMAudio not playing in discord no error

    9 mars 2023, par Anton Abboud

    Okey, it might be something obvious that ive missed but i really can't find the issue. I am currently making a discord-music-bot which has worked fine before. However as soon as i moved over to yt-dlp from youtube-dl (due to an error with youtube-dl) FFmpegPCMAudio doesn't play the music. It read through the code like normal but it simply doesn't play the sound. It even downloads the music from youtube so I am a bit confused. Here is what my code looks like :

    


    class music_cog(commands.Cog):
    
     #Searching the keyword on youtube
    def search_yt(self, item):
        with yt_dlp.YoutubeDL(self.YDL_OPTIONS) as ydl:
            try: 
                info = ydl.extract_info("ytsearch:%s" % item, download=False)['entries'][0]
            except Exception: 
                return False

        return {'source': info['formats'][0]['url'], 'title': info['title']}

    def play_next(self):
        if len(self.music_queue) > 0:
            self.is_playing = True

            
            #Get the first url
            my_url = self.music_queue[0][0]['source']

            global current_song_title
            current_song_title = self.music_queue[0][0]['title']

            #Remove the first song in queue as you are currently playing it
            self.music_queue.pop(0)

            self.vc.play(nextcord.FFmpegPCMAudio(my_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
        else:
            self.is_playing = False

    # Infinite loop checking if there is a song in queue
    async def play_music(self, ctx):
        if len(self.music_queue) > 0:
            self.is_playing = True
            my_url = self.music_queue[0][0]['source']
            
            global current_song_title
            current_song_title = self.music_queue[0][0]['title']
            
            #Try to connect to voice channel if bot is not already connected
            if self.vc == None or not self.vc.is_connected():
                self.vc = await self.music_queue[0][1].connect()

                #In case the bot fails to connect
                if self.vc == None:
                    await ctx.send("Could not connect to the voice channel")
                    return
            else:
                await self.vc.move_to(self.music_queue[0][1])
            
            self.music_queue.pop(0)
            print("hello")
            self.vc.play(nextcord.FFmpegPCMAudio(my_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
            
        else:
            self.is_playing = False

    @commands.command(name="play", aliases=["p"], help="Plays a selected song from youtube")
    async def play(self, ctx, *args):
        query = " ".join(args)
        
        if ctx.author.voice is None:
            #User needs to be connected so that the bot knows where to go
            await ctx.send("Connect to a voice channel!")
        
        elif self.is_paused:
            self.vc.resume()
        
        else:
            global song
            song = self.search_yt(query)
            if type(song) == type(True):
                #In case the song is not able to download
                await ctx.send("Could not download the song. Incorrect format try another keyword. This could be due to playlist or a livestream format.")
            else:
                await ctx.send(f"{song['title']} added to the queue, and gets played if nothing else is in the queue or currently playing")
                voice_channel = ctx.author.voice.channel
                self.music_queue.append([song, voice_channel])
                
                if self.is_playing == False:
                    await self.play_music(ctx)


    


    I have tried searching on how to use FFmpeg even though I have made it work before. but I haven't found anything of use. I wanted to convert back to youtube-dl but realized that it still won't work because of an issue in thier code. I can't really try anything else since im not getting an error. The terminal displays :

    


    [youtube:search] Extracting URL: ytsearch:heh 
[download] Downloading playlist: heh 
[youtube:search] query "heh": Downloading web client config
[youtube:search] query "heh" page 1: Downloading API JSON 
[youtube:search] Playlist heh: Downloading 1 items of 1 
[download] Downloading item 1 of 1
[youtube] Extracting URL: https://www.youtube.com/watch?v=8EhaZG7i9Bk
[youtube] 8EhaZG7i9Bk: Downloading webpage
[youtube] 8EhaZG7i9Bk: Downloading android player API JSON 
[download] Finished downloading playlist: heh 
hello


    


    I used "heh" as an example searchword and "hello" to check if the code actually read what it where it is supposed to play the audio.

    


    Please help !

    


  • Merging video and audio stream, where audio drifts

    22 avril 2015, par TL_IPD

    I want to record audio and video with my raspberry pi b+ 2.
    I tried to accomplish this with one ffmpeg command but this is to slow. and i could not get it working correctly

    I have a raspberry pi camera module and a Cirrus audio card. On the raspberry i have compiled a new kernel with support for the audio card. I also compiled ffmpeg on the raspberr with alsa support

    ~$ ffmpeg
    ffmpeg version N-71470-g2db24cf Copyright (c) 2000-2015 the FFmpeg developers
    built with gcc 4.6 (Debian 4.6.3-14+rpi1)
    configuration: --arch=armel --target-os=linux --enable-gpl --extra-libs=-lasound --enable-nonfree
     libavutil      54. 22.101 / 54. 22.101
     libavcodec     56. 34.100 / 56. 34.100
     libavformat    56. 30.100 / 56. 30.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 14.100 /  5. 14.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Hyper fast Audio and Video encoder
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

    Now i try to record an audio stream and a video stream ’at the same time’
    I do this my running a shell script

    raspivid -t 60000 -vs -w 1280 -h 720 -b 5000000 -fps 25 -o video.h264 &
    arecord -Dhw:sndrpiwsp -r 44100 -c 2 -d 60 -f S32_LE audio.aac

    i also tried with -r 22050 and -f S16_LE

    when running this it sometimes gives an (i think)

    overrun!!! (at least 1038.725 ms long)

    at the end of the script i have two files. a video and a audio file.

    now i want to merge those two together by using ffmpeg

    ffmpeg -i video.h264 -i audio.aac -c:v copy -c:a aac -strict experimental output.mp4

    this gives the output :

    ffmpeg version N-71470-g2db24cf Copyright (c) 2000-2015 the FFmpeg developers
    built with gcc 4.6 (Debian 4.6.3-14+rpi1)
    configuration: --arch=armel --target-os=linux --enable-gpl --extra-libs=-lasound --enable-nonfree
     libavutil      54. 22.101 / 54. 22.101
     libavcodec     56. 34.100 / 56. 34.100
     libavformat    56. 30.100 / 56. 30.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 14.100 /  5. 14.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, h264, from 'video_1min_3.h264':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: h264 (High), yuv420p, 1280x720, 25 fps, 25 tbr, 1200k tbn, 50 tbc
    Guessed Channel Layout for  Input Stream #1.0 : stereo
    Input #1, wav, from 'audio_1min_3.aac':
     Duration: 00:01:00.00, bitrate: 705 kb/s
       Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, 2 channels, s16, 705 kb/s
    [mp4 @ 0x3230f20] Codec for stream 0 does not use global headers but container format requires global headers
    Output #0, mp4, to 'output_1min_3.mp4':
     Metadata:
       encoder         : Lavf56.30.100
       Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720, q=2-31, 25 fps, 25 tbr, 1200k tbn, 1200k tbc
       Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 22050 Hz, stereo, fltp, 128 kb/s
       Metadata:
         encoder         : Lavc56.34.100 aac
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
    Press [q] to stop, [?] for help
    frame= 1822 fps=310 q=-1.0 Lsize=   33269kB time=00:01:12.84 bitrate=3741.7kbits/s
    video:32300kB audio:941kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.086073%

    so finally i have a file output.mp4 that is a movie with audio that is in sync at the beginning but drifts away to a difference of about 4 seconds. where the audio is ahead of the video.

    I hope you can help me trying to solve this issue so the audio does not drift away anymore.

    Thanks in advance

    ( i tried to be as clear as possible )

  • Merge commit ’e63e3797a1ed9346f529848e6ba3d27fd2d2cc8d’

    17 décembre 2015, par Hendrik Leppkes
    Merge commit ’e63e3797a1ed9346f529848e6ba3d27fd2d2cc8d’
    

    * commit ’e63e3797a1ed9346f529848e6ba3d27fd2d2cc8d’ :
    avconv : pass the global codec side data to the muxer

    Merged-by : Hendrik Leppkes <h.leppkes@gmail.com>

    • [DH] ffmpeg.c