
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 (72)
-
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...) -
Ajouter notes et légendes aux images
7 février 2011, parPour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
Modification lors de l’ajout d’un média
Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...)
Sur d’autres sites (6850)
-
Revision 87599 : $GLOBALS[’visiteur_session’] au lieu de global $auteur_session ; et ...
22 février 2015, par kent1@… — Log$GLOBALSvisiteur_session ? au lieu de global $auteur_session ; et $auteur_session
Indentation / Formatage -
Revision 87599 : $GLOBALS[’visiteur_session’] au lieu de global $auteur_session ; et ...
22 février 2015, par kent1@… — Log$GLOBALSvisiteur_session ? au lieu de global $auteur_session ; et $auteur_session
Indentation / Formatage -
RTSP to HLS conversion with error on some devices
2 septembre 2024, par Wallace KetlerI'm trying to convert, on a node server, RTSP IP camera devices to HLS to run livestreams on the web. The following code works well for some RTSP devices, but for others I encounter problems.


function startLive(rtspUrl, outputDir, id_local, id_camera) {
 return new Promise((resolve, reject) => {
 const processKey = `${id_local}_${id_camera}`;
 if (ffmpegProcesses[processKey]) {
 return reject(new Error('Conversão já está em andamento para esta câmera'));
 }
 
 const process = ffmpeg(rtspUrl)
 .inputOptions([
 '-rtsp_transport', 'tcp',
 '-fflags', 'nobuffer',
 '-max_delay', '1000000',
 '-analyzeduration', '1000000',
 '-probesize', '1000000',
 '-flush_packets', '1',
 '-avioflags', 'direct'
 ])
 .outputOptions([
 '-c:v', 'libx264',
 '-preset', 'ultrafast',
 '-tune', 'zerolatency',
 '-c:a', 'aac',
 '-hls_time', '10',
 '-hls_flags', 'delete_segments',
 '-hls_list_size', '5',
 '-hls_wrap', '5',
 '-strict', '-2'
 ])
 .output(path.join(outputDir, 'stream.m3u8'))
 .on('start', (commandLine) => {
 console.log('Spawned FFmpeg with command: ' + commandLine);
 })
 .on('stderr', (stderrLine) => {
 console.log('FFmpeg stderr: ' + stderrLine);
 })
 .on('end', () => {
 console.log('Conversão concluída');
 delete ffmpegProcesses[processKey]; 
 resolve();
 })
 .on('error', (err, stdout, stderr) => {
 console.error('Erro na conversão', err);
 console.error('FFmpeg stdout:', stdout);
 console.error('FFmpeg stderr:', stderr);
 delete ffmpegProcesses[processKey]; 
 reject(err);
 })
 .run();
 
 ffmpegProcesses[processKey] = process; 
 });
 }



When the conversion succeeds, it continues indefinitely with the logs :


FFmpeg stderr: frame= 61 fps= 48 q=13.0 size=N/A time=00:00:02.03 bitrate=N/A dup=60 drop=0 speed= 1.6x 
FFmpeg stderr: frame= 75 fps= 42 q=17.0 size=N/A time=00:00:02.52 bitrate=N/A dup=62 drop=0 speed=1.41x 
FFmpeg stderr: frame= 91 fps= 39 q=16.0 size=N/A time=00:00:03.04 bitrate=N/A dup=65 drop=0 speed=1.31x 
FFmpeg stderr: frame= 108 fps= 38 q=15.0 size=N/A time=00:00:03.60 bitrate=N/A dup=68 drop=0 speed=1.27x 
FFmpeg stderr: frame= 121 fps= 36 q=24.0 size=N/A time=00:00:04.03 bitrate=N/A dup=70 drop=0 speed=1.21x 
FFmpeg stderr: frame= 138 fps= 36 q=16.0 size=N/A time=00:00:04.60 bitrate=N/A dup=73 drop=0 speed= 1.2x 
FFmpeg stderr: frame= 152 fps= 35 q=17.0 size=N/A time=00:00:05.08 bitrate=N/A dup=75 drop=0 speed=1.17x 
FFmpeg stderr: frame= 168 fps= 35 q=16.0 size=N/A time=00:00:05.60 bitrate=N/A dup=78 drop=0 speed=1.15x 
FFmpeg stderr: frame= 183 fps= 34 q=21.0 size=N/A time=00:00:06.11 bitrate=N/A dup=80 drop=0 speed=1.13x 
FFmpeg stderr: frame= 198 fps= 34 q=16.0 size=N/A time=00:00:06.60 bitrate=N/A dup=83 drop=0 speed=1.12x 
FFmpeg stderr: frame= 215 fps= 33 q=16.0 size=N/A time=00:00:07.16 bitrate=N/A dup=86 drop=0 speed=1.11x 
FFmpeg stderr: frame= 230 fps= 33 q=16.0 size=N/A time=00:00:07.66 bitrate=N/A dup=88 drop=0 speed= 1.1x 
FFmpeg stderr: frame= 246 fps= 33 q=19.0 size=N/A time=00:00:08.20 bitrate=N/A dup=91 drop=0 speed= 1.1x 



And with the segments saved in the folder configured as output. But for certain devices, after creating the stream.m3u8 file and saving the first segment, the conversion is considered finished and falls into
.on('end')
. The error log is as follows :

FFmpeg stderr: frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:01.12 bitrate=N/A speed=2.08x 
FFmpeg stderr: [hls @ 0x55e00dfc4380] Opening 'my_path/stream0.ts' for writing
FFmpeg stderr: [hls @ 0x55e00dfc4380] Opening 'my_path/stream.m3u8.tmp' for writing
FFmpeg stderr: frame= 0 fps=0.0 q=0.0 Lsize=N/A time=00:00:01.37 bitrate=N/A speed= 2.5x 
FFmpeg stderr: video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
FFmpeg stderr: [aac @ 0x55e00dfff840] Qavg: 65536.000
FFmpeg stderr: 
Conversão concluída



The
muxing overhead: unknown
only appears when the error occurs and the conversion is complete.

I've already tried changing the video and audio encoders, as well as the various input and output parameters of the conversion. I also tried updating ffmpeg (it's already on the latest version, using fluent-ffmpeg,
"fluent-ffmpeg": "^2.1.3",
)

I would like to understand why this happens on some devices and how to fix it. Thanks.