
Recherche avancée
Médias (3)
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (111)
-
D’autres logiciels intéressants
12 avril 2011, parOn ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
Videopress
Site Internet : (...) -
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 (...) -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.
Sur d’autres sites (3851)
-
Do avcodec_receive_frame and avcodec_send_packet block / how to design ffmpeg decoding loop ?
12 octobre 2020, par PaprikaI'm thinking about how to design a loop that reads frames from internet, feed to ffmpeg decoder and then receive from ffmpeg to send to a render.


Take this pseudocode loop in consideration :


while true {
 auto packet = receive_packet_from_network();
 avcodec_send_packet(packet);
 auto frame = alloc_empty_frame();
 int r = avcodec_receive_frame(&frame);
 if (r==0) {
 send_to_render(frame);
 }
}



do
avcodec_send_packet
oravcodec_receive_frame
block or ffmpeg has an internal thread ? I'm concerned about this loop because it waits for packets from network, so it has some delay. I'd like to do something like this instead :

//thread 1
while true {
 auto packet = receive_packet_from_network();
 avcodec_send_packet(packet);
}
//thread 2
while true {
 auto frame = alloc_empty_frame();
 int r = avcodec_receive_frame(&frame);
 if (r==0) {
 send_to_render(frame);
 }
}



however, now, if
avcodec_receive_frame
does not block, then this loop would run too fast, millions of times per second.

So, how should I design the send/receive of packets in ffmpeg in the most efficient way ? I don't want to spend cpu cycles like in the thread2 loop.


-
Google Speech API - Is there a way to determine if the audio has human voice or not ?
20 décembre 2019, par stupid_smaI am making an audio filtering application at work that reads over hundreds of audio files and filters them. So, if the audio has human voice in it, it will accept it and if it does not- it will delete the audio file.
I am using ffmpeg to get the details of the audio and add other filters like size and duration and silence (though it is not very accurate in detecting silence for all audio files.)
My company asked me to try the Google Cloud Speech API to detect if the audio has any human voice in it.
So with this code, some audio files return a Transcript of spoken words in the audio file, but what I need is to determine if a human is speaking or not.
I have considered using hark.js for it but there does not seem to be enough documentation and I am short on time !
Ps. I am an intern and I’m just starting out with programming. I apologize if my question does not make sense or sounds dumb.
# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
# Imports the Google Cloud client library
use Google\Cloud\Speech\V1\SpeechClient;
use Google\Cloud\Speech\V1\RecognitionAudio;
use Google\Cloud\Speech\V1\RecognitionConfig;
use Google\Cloud\Speech\V1\RecognitionConfig\AudioEncoding;
putenv('GOOGLE_APPLICATION_CREDENTIALS=../../credentials.json');
echo getcwd() . "<br />";
chdir('test-sounds');
echo getcwd() . "<br />";
echo shell_exec('ls -lr');
$fileList = glob('*');
foreach($fileList as $filename){
//echo $filename, '<br />';
# The name of the audio file to transcribe
$audioFile = __DIR__ . '/' . $filename;
# get contents of a file into a string
$content = file_get_contents($audioFile);
# set string as audio content
$audio = (new RecognitionAudio())
->setContent($content);
# The audio file's encoding, sample rate and language
$config = new RecognitionConfig([
'encoding' => AudioEncoding::LINEAR16,
'language_code' => 'ja-JP'
]);
# Instantiates a client
$client = new SpeechClient();
# Detects speech in the audio file
$response = $client->recognize($config, $audio);
# Print most likely transcription
foreach ($response->getResults() as $result) {
$alternatives = $result->getAlternatives();
$mostLikely = $alternatives[0];
$transcript = $mostLikely->getTranscript();
printf('<br />Transcript: %s' . PHP_EOL, $transcript . '<br />');
}
$client->close();
}
?> ``` -
Question about coding design of interface and receivers
14 décembre 2018, par the_real_oneI am trying to create an interface for an FFmpeg conversion scheme where :
- New() should return whatever implements it
- (receiver *interface) Convert() is the only method that should be implemented and the underlying details hidden (source files from : URL, File, etc.)
How would I accomplish the above problem and design the code in such a way that you have various New() methods returning an FFmpegConverer that enforces the implementation of the Convert() method but with the underlying details behind each New() being different ? Or is that just a bad design to begin with ?
My code may be less relevant than my problem statement but this is what I have so far which does not pass any go sanity checks :
// FfmpegConverter is the interface for setting the public facing local
// video files
type FfmpegConverter interface {
Convert() error
}
// localVideo holds the file information for a downloaded video
type localVideo struct {
inputAudioFile * os.File
inputVideoFile * os.File
outputVideoFile * os.File
}
// New initializes a new FfmpegConverter
func New(inputVideoFilePath string, inputAudioFilePath string, outputVideoFilePath string)(ffmpegConverter FfmpegConverter, err error) {
ffmpegConverter = & localVideo {}
// Set input video file
ffmpegConverter.inputVideoFile, err = os.Open(inputVideoFilePath)
if err != nil {
return
}
if err = ffmpegConverter.inputVideoFile.Close();
err != nil {
return
}
// Set input audio file
ffmpegConverter.inputAudioFile, err = os.Open(inputAudioFilePath)
if err != nil {
return
}
if err = ffmpegConverter.inputAudioFile.Close();
err != nil {
return
}
// Set output video file
ffmpegConverter.outputVideoFile, err = os.Create(outputVideoFilePath)
if err != nil {
return
}
if err = ffmpegConverter.outputVideoFile.Close();
err != nil {
return
}
return
}
// Convert will convert the input video and input audio files to an combined
// output video file
func(l * localVideo) Convert()(err error) {
// Do stuff with the internal struct
// ...
}