
Recherche avancée
Autres articles (66)
-
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 -
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...) -
Pas question de marché, de cloud etc...
10 avril 2011Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
sur le web 2.0 et dans les entreprises qui en vivent.
Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)
Sur d’autres sites (10190)
-
HNM4/HNM4A demuxer & video decoder
28 octobre 2013, par David KmentHNM4/HNM4A demuxer & video decoder
Signed-off-by : Diego Biurrun <diego@biurrun.de>
- [DH] Changelog
- [DH] doc/general.texi
- [DH] libavcodec/Makefile
- [DH] libavcodec/allcodecs.c
- [DH] libavcodec/avcodec.h
- [DH] libavcodec/codec_desc.c
- [DH] libavcodec/hnm4video.c
- [DH] libavcodec/version.h
- [DH] libavformat/Makefile
- [DH] libavformat/allformats.c
- [DH] libavformat/hnm.c
- [DH] libavformat/version.h
-
How to save ffmpeg segmets to disk immediately with sub-second intervals ?
20 octobre 2023, par amfastI'm trying to record video on a raspberry and have it save as much as possible (sub-second resolution) in case of a power cutoff.


I use
-f segment
to save the encoded stream in 100ms segments with the hope that all but the interrupted (by power cutoff) segment will be saved in memory. Unfortunately, when cutting off power, all the destination files (output_0001.mp4, output_0002.mp4, ...) are created, but empty.

To save the files to disk immediately, I added the
-strftime 1
option that allows formatting the output filename as time. It seems weird that this is the (only ?) way to trigger immediate saving of files, but it works - untill I try to have segments smaller than 1 second. The problem seems to be that the format string%d
, that previously added a sequence number in my output filenames, now represents "day" (i.e. date) and the smallest resolution time format string is%S
for second. I saw%f
suggested somewhere for smaller resolutions, but it only prints "%f".

The result is that the
segment
ation part of ffmpeg does create 100ms segments and save them to disk immediately, but thestrftime
feature gives the output files names that only change every second, so all the interim files are overwritten.

Example of the failing command below. Without the
-strftime
option this creates nice segments, but does not save them to disk immediately.

libcamera-vid --flush \
 --framerate ${FRAMERATE} \
 --width ${WIDTH} \
 --height ${HEIGHT} \
 -n \
 -t ${TIMEOUT} \
 --codec yuv420 \
 -o - | 
ffmpeg \
 -fflags nobuffer \
 -strict experimental \
 -loglevel debug \
 -flags low_delay \
 -f rawvideo \
 -pix_fmt yuv420p \
 -s:v ${WIDTH}x${HEIGHT} \
 -r ${FRAMERATE} \
 -i - \
 -c:v h264_v4l2m2m \
 -f segment \
 -segment_time 0.1 \
 -segment_format mp4 \
 -reset_timestamps 1 \
 -strftime 1 \
 -b:v ${ENCODING_BITRATE} \
 -g 1 \
 "output_%04d.mp4"



Question :

Is there another way besides-strftime
to trigger immediate saving ? Or is there a mechanism to feed finer resolution format strings to the output filename ?

-
Cannot play audio from a link using a Discord Bot
2 mars 2020, par GuilhermeffableI’m trying to code a bot so me and my friends can hear the local radio on our Discord Server but I’m having this error.
This is part of my code, it’s the play.js file that handles the playback stuff.
module.exports = (client,message) => {
const voiceChannel = message.member.voiceChannel;
const idChannel = voiceChannel.id;
console.log(idChannel)
//vê se o user está numa sala de voz
if(!voiceChannel) {
return message.channel.send("Precisas de estar num voice channel para usar este comando.")
}
const permissions = voiceChannel.permissionsFor(message.client.user);
//vê se tem permissões para entrar na sala
if(!permissions.has('CONNECT') || !permissions.has('SPEAK')) {
return message.channel.send("Não tenho permissões para entrar nessa sala.")
}
voiceChannel.join()
.then(connection => {
console.log("Successfully connected.");
connection.playStream('http://centova.radios.pt:8401/stream.mp3/1')
}).catch(e =>{
console.error(e);
});}
And this is the error I’m getting :
TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received an instance of
Object
at validateString (internal/validators.js:117:11)
at normalizeSpawnArguments (child_process.js:406:3)
at Object.spawn (child_process.js:542:16)
at new FfmpegProcess (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\prism-media\src\transcoders\ffmpeg\FfmpegProcess.js:14:33)
at FfmpegTranscoder.transcode (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\prism-media\src\transcoders\ffmpeg\Ffmpeg.js:34:18)
at MediaTranscoder.transcode (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\prism-media\src\transcoders\MediaTranscoder.js:27:31)
at Prism.transcode (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\prism-media\src\Prism.js:13:28)
at AudioPlayer.playUnknownStream (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\discord.js\src\client\voice\player\AudioPlayer.js:97:35)
at VoiceConnection.playStream (C:\Users\guilh\desktop\BOT\orbitalbot\node_modules\discord.js\src\client\voice\VoiceConnection.js:546:24)
at C:\Users\guilh\desktop\BOT\orbitalbot\commands\play.js:24:24 {
code: 'ERR_INVALID_ARG_TYPE'