
Recherche avancée
Autres articles (18)
-
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 (...) -
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 (...) -
Configuration spécifique d’Apache
4 février 2011, parModules spécifiques
Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
Création d’un (...)
Sur d’autres sites (4138)
-
How to enable multi-threading in JavaCV FfmpegFrameRecorder ?
7 août 2024, par Zbynek Vyskovsky - kvr000I'm re-coding a video using FfmpegFrameGrabber and FfmpegFrameRecorder. It's using H264 codec and I try to enable multi-threading, however, it still runs in single thread only (according to top). Here's the relevant part of code :


recorder.setFormat("mp4");
 recorder.setOption("loglevel", "debug");
 recorder.setOption("threads", "auto");
 recorder.setOption("c", "copy");
 if (grabber.hasVideo()) {
 recorder.setVideoMetadata(grabber.getVideoMetadata());
 recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
 recorder.setVideoCodecName("h264");

 recorder.setVideoBitrate(grabber.getVideoBitrate() * options.bitrateRatio / 100);
 // those do not work:
 recorder.setOption("threads", "auto");
 recorder.setVideoOption("threads", "auto");
 //recorder.setVideoOption("preset", "ultrafast");
 //recorder.setVideoOption("tune", "zerolatency");
 //recorder.setVideoOption("crf", "23");
 }
 recorder.start();
 while ((frame = grabber.grab()) != null) {
 if (frame.type == Frame.Type.VIDEO) {
 BufferedImage bufferedImage = converter.getBufferedImage(frame);
 // draw some stuff on bufferedImage...
 Frame modifiedFrame = frame.clone();
 Java2DFrameConverter.copy(bufferedImage, modifiedFrame);

 // Record the modified frame
 recorder.record(modifiedFrame);
 }
 else {
 recorder.record(frame);
 }
 }



Actually, none of the options seem to be passed to encoder. I'm using JavaCv 1.5.10, Ffmpeg 6.1.1


-
Sites qui peuvent inspirer
26 septembre 2013Pour des nouveaux thèmes, voir pour faire évoluer le squelette, il est toujours intéressant de regarder les sites qui font pareil. Ici, deux liens vers des catalogues OpenData
Liens de severo :
- généraliste : http://demo.ckan.org/ ;
- données spatiales : http://beta.dev.geonode.org/ ;
- http://www.documentcloud.org/public/search/
Liens de kent1 :
- Site de tutoriaux vidéos : https://tutsplus.com
- Un thème wordpress utilisé notamment ici ;
- Autre thème wordpress utilisé ici ;
-
Memory leaks when opening RTMP stream with wrong url
3 novembre 2015, par n00bieI’m using libav for streaming to YouTube through RTMP. I have function openRtmpStream() for opening RTMP stream. It works well. But recently i noticed the situation, when RTMP url is wrong (or server is down). In this situation my code is trying to reconnect, and calls this function about 15 times per second. With htop i can see about 20 MB per second memory leak in this situation.
Maybe my code for closing context and streams is wrong ? Or any another idea what I’m doing wrong ? Thanks in advance !
Here’s my code :
bool openRtmpStream( const std::string& address )
{
if( ! m_httpContext ) {
m_httpContext = avformat_alloc_context( );
m_httpContext->oformat = av_guess_format( "flv", address.c_str( ), nullptr );
if( m_httpContext->oformat ) {
strcpy( m_httpContext->filename, address.c_str( ) );
auto codecID = AV_CODEC_ID_H264;
auto codec = avcodec_find_encoder( codecID );
if( codec ) {
m_httpVideoStream = avformat_new_stream( m_httpContext, codec );
// ... here's initalization of m_httpVideoStream->codec ...
int res = avcodec_open2( codecContext, codec, nullptr );
if( res >= 0 ) {
auto codecID = AV_CODEC_ID_MP3;
auto codec = avcodec_find_encoder( codecID );
if( codec ) {
m_httpAudioStream = avformat_new_stream( m_httpContext, codec );
// ... here's initalization of m_httpAudioStream->codec ...
res = avcodec_open2( codecContext, codec, nullptr );
if( res >= 0 ) {
m_httpStreamWriteStartTime = boost::chrono::high_resolution_clock::now( );
if( avio_open2( &m_httpContext->pb, m_httpContext->filename, AVIO_FLAG_WRITE, m_AVIOInterruptCB.get( ), nullptr ) >= 0 ) {
if( avformat_write_header( m_httpContext, nullptr ) >= 0 ) {
return true; // success
}
}
avcodec_close( m_httpAudioStream->codec );
}
}
avcodec_close( m_httpVideoStream->codec );
}
}
}
// failed to open stream, close context and streams
avio_close( m_httpContext->pb );
avformat_free_context( m_httpContext );
m_httpContext = nullptr;
m_httpVideoStream = nullptr;
m_httpAudioStream = nullptr;
}
return false;
}