
Recherche avancée
Médias (10)
-
Demon Seed
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Demon seed (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
The four of us are dying (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Corona radiata (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Lights in the sky (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Head down (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
Autres articles (20)
-
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...) -
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 -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...)
Sur d’autres sites (6298)
-
Discord Bot Freezes and Stops Sending/Receiving Audio Buffers
17 mai 2024, par NerevaineI'm working on a Discord bot that connects to a voice channel, listens to the audio, and sends it to a WebSocket server. Initially, everything works fine, but after some time, the bot freezes and stops sending/receiving audio buffers. After a certain period, the bot stops processing audio. There are no errors thrown, but the audio buffers stop being sent and received. Here are the key parts of the code I use to handle the connection and audio processing :


let count = 0;

 await entersState(connection, VoiceConnectionStatus.Ready, 30000);
 const player = createAudioPlayer();
 connection.subscribe(player);

 ws.on('open', () => {
 voiceChannel.members.forEach(member => {
 if (member.user.id !== client.user.id) {
 member.voice.setMute(false);
 }
 });
 });

 ws.on('error', console.error);
 ws.on('close', () => {
 console.log('WebSocket connection closed, attempting to reconnect...');
 });

 const audioBuffers = new Map();

 connection.receiver.speaking.on('start', userId => {
 audioBuffers.set(userId, []);

 const opusStream = connection.receiver.subscribe(userId, {
 end: {
 behavior: EndBehaviorType.AfterSilence,
 duration: 1000
 }
 });

 const pcmStream = opusStream.pipe(new prism.opus.Decoder({ rate: 48000, channels: 2, frameSize: 900 }));
 const wavStream = new PassThrough();

 ffmpeg(pcmStream)
 more filters
 .pipe(wavStream);

 wavStream.on('data', chunk => {
 const chunks = audioBuffers.get(userId);
 if (chunks) {
 chunks.push(chunk);
 }
 });
 });

 connection.receiver.speaking.on('end', userId => {
 const chunks = audioBuffers.get(userId);
 if (chunks && chunks.length > 0) {
 const audioBuffer = Buffer.concat(chunks);
 const duration = audioBuffer.length / 48000 / 2;
 if (duration > 1.0) {
 console.log('Sending audio buffer:', audioBuffer);
 ws.send(audioBuffer);
 audioBuffers.delete(userId);
 }
 }
 });

 ws.on('message', data => {
 const channelEvent = voiceChannel.id === spanishVoiceChannel ? 'dataReceivedEnglish' : 'dataReceivedSpanish';
 eventBus.emit(channelEvent, data);
 count++;
 console.log(`${count}:`, data);
 });

 return player;
 } catch (error) {
 console.error('Error joining voice channel:', error);
 }
}



What I Have Tried


- 

- Monitoring Connection Status : Added logs and intervals to check the status of the WebSocket and voice connection.
- Handling Errors and Reconnections : Implemented reconnection logic for both WebSocket and voice connection.






Any suggestions or help would be greatly appreciated.


-
FFMpeg command line to create specific MPD Manifest
22 février 2024, par Seth HabermanI have tried to get an FFMpeg command to yield the below manifest. Right below is the FFmpeg command that I have tried to make but it has not created the same manifest file as what I am trying to replicate a stream from a third party system to add my own stream to their system so that it will actually play back.


"$ffmpeg_path" \
 -i "$input_file" \
 -r 30000/1001 \
 -vf "scale=3840:1080" \
 -c:v libx265 \
 -c:a aac -b:a 128k \
 -ar 48000 \
 -f dash \
 -use_timeline 1 \
 -use_template 1 \
 -init_seg_name "init-stream\$RepresentationID\$.m4s" \
 -media_seg_name "chunk-stream\$RepresentationID\$-\$Number%05d\$.m4s" \
 -seg_duration 3 \
 "$output_file"



The code above yields a manifest that is structured like below.


<?xml version="1.0" encoding="utf-8"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT1M35.1S" maxsegmentduration="PT3.0S" minbuffertime="PT16.8S">
 <programinformation>
 </programinformation>
 <servicedescription>
 </servicedescription>
 <period start="PT0.0S">
 <adaptationset contenttype="video" startwithsap="1" segmentalignment="true" bitstreamswitching="true" framerate="30000/1001" maxwidth="3840" maxheight="1080" par="32:9">
 <representation mimetype="video/mp4" codecs="hev1" bandwidth="2227590" width="3840" height="1080" sar="1:1">
 <segmenttemplate timescale="30000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
 <segmenttimeline>
 <s t="0" d="247247"></s>
 <s d="250250" r="9"></s>
 <s d="104104"></s>
 </segmenttimeline>
 </segmenttemplate>
 </representation>
 </adaptationset>
 <adaptationset contenttype="audio" startwithsap="1" segmentalignment="true" bitstreamswitching="true">
 <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="128000" audiosamplingrate="48000">
 <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1"></audiochannelconfiguration>
 <segmenttemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">
 <segmenttimeline>
 <s t="0" d="143360"></s>
 <s d="144384" r="29"></s>
 <s d="93120"></s>
 </segmenttimeline>
 </segmenttemplate>
 </representation>
 </adaptationset>
 </period>
</mpd>




The problem is that I I need it to create a stream where the manifest looks like the manifest below. If it doesn't look or function as below, it will not playback correctly on this third parties system.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT1M35.7S" minbuffertime="PT5.9S">
 <programinformation></programinformation>
 <period start="PT0.0S">
 <adaptationset contenttype="video" segmentalignment="true" bitstreamswitching="true">
 <representation bandwidth="12000000" width="3840" height="1080" framerate="30000/1001" mimetype="video/mp4" codecs="hev1">
 <segmenttemplate media="chunk-stream$RepresentationID$-$Number%05d$.m4s" initialization="init-stream$RepresentationID$.m4s" startnumber="1" timescale="30000">
 <segmenttimeline>
 <s t="0" d="89089" r="31"></s>
 <s d="21021"></s>
 </segmenttimeline>
 </segmenttemplate>
 </representation>
 </adaptationset>
 <adaptationset contenttype="audio" segmentalignment="true" bitstreamswitching="true">
 <representation bandwidth="1536000" audiosamplingrate="48000" mimetype="audio/mp4" codecs="mp4a.40.2">
 <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="16"></audiochannelconfiguration>
 <segmenttemplate media="chunk-stream$RepresentationID$-$Number%05d$.m4s" initialization="init-stream$RepresentationID$.m4s" startnumber="1" timescale="48000">
 <segmenttimeline>
 <s t="0" d="143360"></s>
 <s d="142336" r="2"></s>
 <s d="143360"></s>
 <s d="142336" r="3"></s>
 <s d="143360"></s>
 <s d="142336" r="3"></s>
 <s d="143360"></s>
 <s d="142336" r="3"></s>
 <s d="143360"></s>
 <s d="142336" r="3"></s>
 <s d="143360"></s>
 <s d="142336" r="3"></s>
 <s d="143360"></s>
 <s d="142336" r="1"></s>
 <s d="32768"></s>
 </segmenttimeline>
 </segmenttemplate>
 </representation>
 </adaptationset>
 </period>
</mpd>



-
avcodec : add external enc libvvenc for H266/VVC
5 juin 2024, par Thomas Siedelavcodec : add external enc libvvenc for H266/VVC
Add external encoder VVenC for H266/VVC encoding.
Register new encoder libvvenc.
Add libvvenc to wrap the vvenc interface.
libvvenc implements encoder option : preset,qp,qpa,period,
passlogfile,stats,vvenc-params,level,tier.
Enable encoder by adding —enable-libvvenc in configure step.Co-authored-by : Christian Bartnik chris10317h5@gmail.com
Signed-off-by : Thomas Siedel <thomas.ff@spin-digital.com>