
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (71)
-
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
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 -
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 (...)
Sur d’autres sites (12723)
-
How to call av_read_frame() when streamed data is not yet available ?
16 janvier 2024, par CheekyChipsI am streaming audio data and using the ffmpeg/libav libraries to process it in C++. I create a
CustomIOContext
and aread_packet
function to provide the streamed data to ffmpeg, and I create anAVFormatContext
using thatCustomIOContext
.

I want to loop through all available data and extract packets using
av_read_frame()
, and then when there is not enough data left to create a packet I want to wait until I receive more data and then loop again through the new data. However, I can't figure out what to return in myread_packet
function below to tell ffmpeg to wait until more data is available. Ffmpeg seems to require all data to be available now. When I have no data to return, ffmpeg seems to think it's the end of the file, when actually it just isn't ready yet. I have tried returningAVERROR(EAGAIN)
but I still have problems. It seems like I get random decoder-specific error messages, because it thinks the input is invalid (when actually it is just not available yet), and then once I have the input and I try callingav_read_frame()
again, it immediately returns a negative error code because it got into a bad state.

What do I need to do to be able to loop through all the available data using
av_read_frame()
, and then pause and wait until more data arrives ? How do I keep ffmpeg happy ?

// -------- Set up --------
size_t ioContextBufferSize = 4096;
avioContextBuffer = avAllocateEmptyBuffer(ioContextBufferSize);
avioContext = avio_alloc_context(avioContextBuffer.ptr,
 ioContextBufferSize,
 0, // bWriteable (1=true,0=false)
 &(opaque),
 read_packet,
 0, // Write callback function
 0)}; // Seek function not provided

AVFormatContext* inContext = avformat_alloc_context();
inContext->pb = avioContext;
inContext->flags = AVFMT_FLAG_CUSTOM_IO;

avformat_open_input(&inContext, "", nullptr, nullptr);
inputPacket = av_packet_alloc();



// -------- Loop and read data -------
// (the second time we reach this while loop, it never enters the loop :(
//
while ((ret = av_read_frame(inContext, inputPacket)) >= 0) {
 .. do stuff with inputPacket
}



// -------- read_packet function -----
// copies data into ffmpeg's internal buffer. What do I return here???
//
static int read_packet(void* opaque, uint8_t* avioContextBuffer, int ioContextBufferSize) {
 OpaqueDataWrapper* streamedData = static_cast(opaque);

 size_t bytesToRead = std::min((size_t)ioContextBufferSize, streamedData->remainingBytes());

 if (!bytesToRead) {
 // We need to wait for more data to arrive! What do I return here to tell ffmpeg to wait a while? 
 if (streamedData->streamStillOpen()) {
 return AVERROR(EAGAIN);
 } else {
 return AVERROR_EOF;
 }
 }
 ... otherwise copy the next bit of data
}



-
How to packet encoded AAC data to flv file with ffmpeg ?
1er juillet 2015, par Jerikc XIONGI have captured the Audio data from Android Microphone and encoded them by MediaCodec.
My question is :
How to packet encoded AAC data to flv with ffmpeg ?
-
How to packet encoded AAC data to flv file with ffmpeg API ?
1er juillet 2015, par Jerikc XIONGI have captured the Audio data from Android Microphone and encoded them by MediaCodec.
My question is :
How to packet encoded AAC data to flv with ffmpeg ?