
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (62)
-
L’agrémenter visuellement
10 avril 2011MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté. -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Personnaliser les catégories
21 juin 2013, parFormulaire 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 (...)
Sur d’autres sites (11664)
-
Encountered an exception of ffmpeg.wasm can only run one command at a time
2 mars 2023, par Itay113I want to make a video chat using ffmepg wasm (I know the standard is WebRTC but my assignment is to do this with ffmpeg wasm and a server connecting the 2 clients) and when doing the follow code I am getting ffmpeg.wasm can only run one command at a time exception on the ffmpegWorker.run line


function App() {
 const ffmpegWorker = createFFmpeg({
 log: true
 })

 async function initFFmpeg() {
 await ffmpegWorker.load();
 }

 async function transcode(webcamData) {
 const name = 'record.webm';
 await ffmpegWorker.FS('writeFile', name, await fetchFile(webcamData));
 ffmpegWorker.run('-i', name, '-preset', 'ultrafast', '-c:v', 'h264', '-crf', '28', '-b:v', '0', '-row-mt', '1', '-f', 'mp4', 'output.mp4')
 .then(()=> {

 const data = ffmpegWorker.FS('readFile', 'output.mp4');
 
 const video = document.getElementById('output-video');
 video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
 ffmpegWorker.FS('unlink', 'output.mp4');
 })
 }

 function requestMedia() {
 const webcam = document.getElementById('webcam');
 const chunks = []
 navigator.mediaDevices.getUserMedia({ video: true, audio: true })
 .then(async (stream) => {
 webcam.srcObject = stream;
 await webcam.play();
 const mediaRecorder = new MediaRecorder(stream);
 mediaRecorder.start(0);
 mediaRecorder.onstop = function(e) {
 stream.stop(); 
 }
 mediaRecorder.ondataavailable = async function(e) {
 chunks.push(e.data);
 await transcode(new Uint8Array(await (new Blob(chunks)).arrayBuffer()));
 
 }
 })
 }

 useEffect(() => {
 requestMedia();
 }, [])

 return (
 <div classname="App">
 <div>
 <video width="320px" height="180px"></video>
 <video width="320px" height="180px"></video>
 </div>
 </div>
 );
}



I have tried messing around with the time slice on the media recorder start method argument but it didn't helped


-
What's the easiest way to convert ogg to webm on Node without ffmpeg ?
12 mars 2023, par EvertI'm working on a Telegram bot that can receive voice messages and then let OpenAI's Whisper transcribe them and then respond using OpenAI's chat completions API.


Anyway, Whisper does accept a
webm
file as an input, but not anogg
file. Even though ironically, from what I've read, awebm
container can contain a pureogg
file as its soundtrack.

I can't use
ffmpeg
, because I'm deploying this as a serverless function (on Vercel for now) and I have no guarantee thatffmpeg
will be installed there. But I was thinking, sincewebm
is simply a container file which can contain the rawogg
opus
codec as the soundtrack, wouldn't it be possible to just take the binary audio data that I can get from Telegram, usingconst audioData = await response.arrayBuffer()
, and just add some bytes to the beginning and end of it that represent thewebm
container ?

If yes, then can someone please tell me which bytes I'd need to add exactly ?


-
Discord Voice Bot cannot play the audio file
7 avril 2023, par Jakub NawrockiI tried to write a bot that will join the voice channel and play a audio at 20:00.


Currently the bot joins the channel, but immediately after that it disconnects without making a single sound with this message :


2023-04-07 17:58:01 INFO discord.player ffmpeg process 18258 has not terminated. Waiting to terminate... 2023-04-07 17:58:01 INFO discord.player ffmpeg process 18258 should have terminated with a return code of -9. 2023-04-07 17:58:01 INFO discord.voice_client The voice handshake is being terminated for Channel ID 1093533451778523241 (Guild ID 1093533451778523237) 2023-04-07 17:58:01 INFO discord.voice_client Disconnecting from voice normally, close code 1000. Audio file loaded: Audio could not be played:


Code :


import discord
import asyncio
import datetime

TOKEN = 'TOKEN HERE' 
CHANNEL_ID = CHANNEL ID HERE

client = discord.Client(intents=discord.Intents.all())

async def play_sound(voice_client):
 try:
 source = discord.FFmpegPCMAudio('audio.mp3')
 print(f"Audio file loaded: {source}")
 voice_client.play(source)
 while voice_client.is_playing():
 await asyncio.sleep(1)
 except Exception as e:
 print(f"Audio could not be played: {e}")

@client.event
async def on_ready():
 print('Bot is ready')
 now = datetime.datetime.now()
 target_time = datetime.time(hour=20, minute=00)
 if now.time() >= target_time:
 print(f"Current time: {now.time()}. Bot did not join channel.")
 return
 else:
 print(f"Current time: {now.time()}. Bot has joined at {target_time}.")
 await asyncio.sleep((datetime.datetime.combine(datetime.date.today(), target_time) - now).total_seconds())
 channel = client.get_channel(CHANNEL_ID)
 if channel is not None:
 try:
 voice_client = await channel.connect()
 print(f'{client.user} joined voice chat.')
 await asyncio.sleep(1)
 await play_sound(voice_client)
 await voice_client.disconnect()
 print(f'{client.user} left voice chat.')
 except Exception as e:

 print(f"Error during joining channel : {e}")
 else:
 print(f"Did not find a channel of ID {CHANNEL_ID}.")

client.run(TOKEN)



Any ideas ?


ffmpeg has been installed properly.