
Recherche avancée
Autres articles (65)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-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 -
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...)
Sur d’autres sites (10441)
-
QML multimedia cannot play m3u8 that is generated with ffmpeg
5 juin 2023, par LeXela-EDWith the following command, I am trying to stream an IP camera over web :


ffmpeg -re -i "rtsp://<user>:<password>@<ip>:<port>" -c:v copy -c:a copy -hls_segment_type mpegts -hls_list_size 5 -hls_wrap 5 -hls_time 2 -hls_flags split_by_time -segment_time_delta 1.00 -reset_timestamps 1 -hls_allow_cache 0 -movflags faststart live.m3u8```
</port></ip></password></user>


This command, produces live.m3u8 and five ts files : live0.ts, live1.ts, live2.ts, live3.ts, and live4. And conversion goes smoothly. At some random point, the content of live.m3u8 is as follows :


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:92
#EXTINF:2.000000,
live2.ts
#EXTINF:2.000000,
live3.ts
#EXTINF:2.035800,
live4.ts
#EXTINF:2.000000,
live0.ts
#EXTINF:1.963278,
live1.ts



However, when I tried to play live.m3u8 with the following QML code, it only played a very first segments of it :


import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtMultimedia 5.15

Window
{
 width: 640
 height: 480
 visible: true

 Item
 {
 anchors.fill: parent

 MediaPlayer
 {
 id: mediaplayer
 source: "path-to-live/live.m3u8"
 videoOutput: videoOutput
 }

 VideoOutput
 {
 id: videoOutput
 anchors.fill: parent
 }

 MouseArea
 {
 anchors.fill: parent
 onPressed: mediaplayer.play();
 }
 }
}




The interesting thing is : I manually deleted live.m3u8, and obviously, ffmpeg generated another one after ! Then I clicked on the QML program window, and surprisingly, it played the stream nonstop as it was expected at the first run !


What is the problem here ? What I am missing ? Should I change the ffmpeg command or do something with my qml code ? Any idea or help ?


Thank you in advance.


-
ffmpeg doesn't work, when starting up it doesn't play music, it gives errors
14 août 2024, par Оля Михееваimport discord
from discord import FFmpegPCMAudio
import os
import random
from gtts import gTTS
import asyncio

TOKEN="***"
VOICE_CHANNEL_ID=11122224444

class Voice_Bot(discord.Client):
 def __init__(self):
 intents = discord.Intents.default()
 intents.message_content = True
 intents.voice_states=True
 super().__init__(intents=intents)
 print(os.getcwd())
 self.sounds_hello = os.listdir(os.path.join('sounds','hello'))
 self.sounds_bye = os.listdir('sounds\\bye')
 self.sounds = os.listdir('sounds\\nature')

 async def on_ready(self): 
 self.voice_channel = self.get_channel(VOICE_CHANNEL_ID) 
 if self.voice_channel == None:
 print('Не удалось подключиться к голосовому каналу.')
 return
 self.voice_client = await self.voice_channel.connect()
 print('Бот подключен к голосовому каналу')
 await self.text_to_speech("Lets play Guess the Tune")
 
 async def on_message(self,message):
 if message.author==self.user:
 return
 if message.content.startswith("game"):
 await self.text_to_speech("let's start the game guess the melody")
 music=os.listdir("sounds\\music")
 self.melody=random.choice(music)
 await self.play_sound(f"sounds\\music\\{self.melody}")
 elif message.content==self.melody[0:len(self.melody)-4]:
 if (self.voice_client.is_playing()):
 self.voice_client.stop()
 await self.text_to_speech(f"Congratulations, {message.author.name} answered correctly! To continue, type game")
 else:
 if (self.voice_client.is_playing()):
 self.voice_client.stop()
 await self.text_to_speech(f"Unfortunately, {message.author.name} did not guess. To continue, write game")


 async def on_voice_state_update(self,member,before,after):
 if member.id ==self.user.id:
 print('Someone entered or left the voice channel.')
 else:
 try:
 if before.channel == None:
 print(f'{member.name} entered the voice channel {after.channel}.')
 await self.play_sound(f'sounds\\hello\\{random.choice(self.sounds_hello)}')
 elif after.channel == None:
 print(f'{member.name} left the voice channel {before.channel}.')
 await self.play_sound(f'sounds\\bye\\{random.choice(self.sounds_bye)}')
 except Exception as e:
 print(f"Error in on_voise_state_update: {e}")

 async def text_to_speech(self,text):
 try:
 tts = gTTS(text=text, lang ="en")
 tts.save("text.mp3")
 except Exception as e:
 print(f"Error e: {e}")
 await self.voice_channel.send(text)
 await self.play_sound("text.mp3")

 def play_sound(self,path):
 print(path)
 source=discord.FFmpegPCMAudio(source=path, executable="ffmpeg\\bin\\ffmpeg.exe")
 if (self.voice_client.is_playing()):
 self.voice_client.stop()
 self.voice_client.play(source) 

client = Voice_Bot()
client.run(TOKEN)



[enter image description here](https://i.sstatic.net/ys8Xza0w.jpg)


-
Pygame : Frame ghosting ?
31 décembre 2013, par Sam TubbI am working on a animation environment in python using pygame. The user draw's each frame, and then using ffmpeg the animation is saved as an .avi movie. I would like to implement a feature, but am not sure how.. frame ghosting. Like display the previous frame while you draw the current.
I tried creating a surface called
ghost
that copies the current frame when the next-frame key is pressed. Then draws it with an alpha level of 10, but this didn't work out correctly.I am not sure what to do, here is the source code for anyone that thinks they have an idea :
#Anim8
import pygame,subprocess,shutil
from os import makedirs
from pygame.locals import *
from random import randrange
pygame.init()
screen=pygame.display.set_mode((740,580))
draw=pygame.Surface((740,540))
draw.fill((200,200,200))
bcol=(200,200,200)
gui=pygame.Surface((740,40))
gui.fill((50,50,50))
size=2
color=(0,0,0)
screen.fill((200,200,200))
prevcol=0
newcol=0
f=0
msg=''
framerate=60
try:
makedirs('anim')
except:
pass
def DrawColors(x,y):
pygame.draw.rect(gui, (255,0,0), (x+3,y+3,15,15),0)
pygame.draw.rect(gui, (0,0,0), (x+3,y+21,15,15),0)
pygame.draw.rect(gui, (0,255,0), (x+21,y+3,15,15),0)
pygame.draw.rect(gui, (200,200,200), (x+21,y+21,15,15),0)
pygame.draw.rect(gui, (0,0,255), (x+39,y+3,15,15),0)
while True:
pygame.display.set_caption('Anim8 - Sam Tubb - '+'Frame: '+str(f)+' '+str(msg))
mse=pygame.mouse.get_pos()
screen.blit(gui, (0,0))
DrawColors(0,0)
screen.blit(draw,(0,40))
key=pygame.key.get_pressed()
if key[K_1]:
framerate=10
msg='Frame Rate set to 10'
if key[K_2]:
framerate=20
msg='Frame Rate set to 20'
if key[K_3]:
framerate=30
msg='Frame Rate set to 30'
if key[K_4]:
framerate=40
msg='Frame Rate set to 40'
if key[K_5]:
framerate=50
msg='Frame Rate set to 50'
if key[K_6]:
framerate=60
msg='Frame Rate set to 60'
if key[K_7]:
framerate=70
msg='Frame Rate set to 70'
if key[K_8]:
framerate=80
msg='Frame Rate set to 80'
if key[K_9]:
framerate=90
msg='Frame Rate set to 90'
if key[K_0]:
framerate=100
msg='Frame Rate set to 100'
if key[K_a]:
pygame.image.save(draw, 'anim/frame'+str(f)+'.png')
f+=1
for e in pygame.event.get():
if e.type==QUIT:
shutil.rmtree('anim')
exit()
if e.type==KEYDOWN:
if e.key==K_s:
msg='Added Frame!'
pygame.image.save(draw, 'anim/frame'+str(f)+'.png')
f+=1
if e.key==K_c:
draw.fill(bcol)
if e.key==K_r:
name='anim'+str(randrange(0,999))+str(randrange(0,999))+'.avi'
msg='Rendering: '+name
pygame.display.set_caption('Anim8 - Sam Tubb - '+'Frame: '+str(f)+' '+str(msg))
subprocess.call('ffmpeg -f image2 -s 640x480 -i anim/frame%01d.png -r '+str(framerate)+' '+name,shell=True)
msg='Done!'
if e.key==K_p:
subprocess.call('ffplay '+name,shell=True)
if e.type==MOUSEBUTTONDOWN:
if e.button==1:
try:
prevcol=color
newcol=gui.get_at(mse)
if newcol==(50,50,50):
newcol=prevcol
color=newcol
except:
pass
if e.button==3:
try:
prevcol=bcol
newcol=gui.get_at(mse)
if newcol==(50,50,50):
newcol=prevcol
draw.fill(newcol)
bcol=newcol
except:
pass
if e.button==4:
size+=1
if size>7:
size=7
if e.button==5:
size-=1
if size==0:
size=1
if e.type == pygame.MOUSEMOTION:
lineEnd = pygame.mouse.get_pos()
lineEnd = (lineEnd[0],lineEnd[1]-40)
if pygame.mouse.get_pressed() == (1, 0, 0):
pygame.draw.line(draw, color, lineStart, lineEnd, size)
lineStart = lineEnd
pygame.display.flip()Oh, and on another note, just if anyone was curious, here is what the output looks like.. I made a little new year's animation :