Recherche avancée

Médias (91)

Autres articles (112)

Sur d’autres sites (11316)

  • Music bot returning errors at core.py and bot.py

    13 septembre 2021, par Loganox

    The code for the music bot I'm trying to write in python keeps returning an error with the following code :

    


    @bot.command(name='play_song', help='To play song')
async def play(ctx,url):
    
    #if not ctx.message.author.name=="Rohan Krishna" :
    #     await ctx.send('NOT AUTHORISED!')
    #     return
    if 1==1:#try :
        server = ctx.message.guild
        voice_channel = server.voice_client
        print("try 1 was a success")
        
        async with ctx.typing():
            filename = await YTDLSource.from_url(url, loop=bot.loop)
            #voice_channel.play(discord.FFmpegPCMAudio(executable="ffmpeg.exe", source=filename)) #ISSUE HERE
            print("try 2 was a success")
            voice = get(ctx.bot.voice_clients, guild=ctx.guild)
    
            #voice.play(discord.FFmpegPCMAudio('test.mp3'), after=your_check)
            #voice.source = discord.PCMVolumeTransformer(voice.source)
            #voice.source.volume = 0.5
        await ctx.send('**Now playing:** {}'.format(filename))
    if 1==0:#except:
        await ctx.send("The bot is not connected to a voice channel.")
        print("try 3 was unfortunately a success")


    


    It normally has a try/except function but I replaced it with if true and false statements to force it to run instead of breaking to determine the exact line of it breaking. The issue supposedly lies in

    


    voice_channel.play(discord.FFmpegPCMAudio(executable="ffmpeg.exe", source=filename)) #ISSUE HERE


    


    The error I get returned is :

    


    Traceback (most recent call last):
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "app2.py", line 75, in play
    voice.play(discord.FFmpegPCMAudio('test.mp3'), after=your_check)
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\player.py", line 225, in __init__
    super().__init__(source, executable=executable, args=args, **subprocess_kwargs)
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\player.py", line 138, in __init__
    self._process = self._spawn_process(args, **kwargs)
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\player.py", line 147, in _spawn_process
    raise ClientException(executable + ' was not found.') from None
discord.errors.ClientException: ffmpeg was not found.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\heyin\anaconda3\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientException: ffmpeg was not found.


    


    I added the print statements to determine which lines were working so those can obviously be ignored. It seems to be working fine except for this, other commands in the bot are working appropriately.

    


  • How to generate valid live DASH for YouTube ?

    24 septembre 2019, par Matt Hensley

    I am attempting to implement YouTube live video ingestion via DASH as documented at :
    https://developers.google.com/youtube/v3/live/guides/encoding-with-dash

    To start, I am exercising the YouTube API manually and running ffmpeg to verify required video parameters before implementing in my app.

    Created a new livestream with liveStreams.insert and these values for the cdn field :

    "cdn": {
       "frameRate": "variable",
       "ingestionType": "dash",
       "resolution": "variable"
    }

    Created a broadcast via liveBroadcasts.insert, then used liveBroadcasts.bind to bind the stream to the broadcast.

    Then I grabbed the ingestionInfo from the stream and ran this ffmpeg command, copying in the ingestionAddress with the streamName :

    ffmpeg -stream_loop -1 -re -i mov_bbb.mp4 \
       -loglevel warning \
       -r 30 \
       -g 60 \
       -keyint_min 60 \
       -force_key_frames "expr:eq(mod(n,60),0)" \
       -quality realtime \
       -map v:0 \
       -c:v libx264 \
       -b:v:0 800k \
       -map a:0 \
       -c:a aac \
       -b:a 128k \
       -strict -2 \
       -f dash \
       -streaming 1 \
       -seg_duration 2 \
       -use_timeline 0 \
       -use_template 1 \
       -window_size 5 \
       -extra_window_size 10 \
       -index_correction 1 \
       -adaptation_sets "id=0,streams=v id=1,streams=a" \
       -dash_segment_type mp4 \
       -method PUT \
       -http_persistent 1 \
       -init_seg_name "dash_upload?cid=${streamName}&copy=0&file=init$RepresentationID$.mp4" \
       -media_seg_name "dash_upload?cid=${streamName}&copy=0&file=media$RepresentationID$$Number$.mp4" \
       'https://a.upload.youtube.com/dash_upload?cid=${streamName}&copy=0&file=dash.mpd'

    It appears all the playlist updates and video segments upload fine to YouTube - ffmpeg does not report any errors. However the liveStream status always shows noData, and the YouTube Live Control Room doesn’t show the stream as receiving data.

    The DASH output, when written to files play backs fine in this test player. The playlist output doesn’t match exactly the samples, but does have the required tags per the "MPD Contents" section in the documentation.

    Are my ffmpeg arguments incorrect, or does YouTube have additional playlist format requirements that are not documented ?

  • Streaming 4K video file to YouTube on a Raspberry Pi 4 using FFMPEG

    25 mai 2021, par martijn

    I'm trying to stream a 4K video file to YouTube on a raspberry pi4 using FFMPEG (version : Linux raspberrypi 5.10.17-v7l+ #1414 SMP Fri Apr 30 13:20:47 BST 2021 armv7l GNU/Linux, 8gb).
I know you cannot do that with older Pi-versions.
I didn't find the proper ffmpeg commands yet, so I cannot test it right now. But before I give it a try, is it basically possible to stream 4K in this way with this version of the Pi ?