[Libav-user] How to use rawvideo conatiner format with mpeg4
Mark Pupilli
mpupilli at gmail.com
Sat Oct 27 16:06:02 CEST 2012
I am having problems sending mpeg4 (FMP4) in the the rawvideo
container format. I am setting up the muxer as follows:
m_outputFormat = av_guess_format( "rawvideo", 0, 0 );
m_formatContext->oformat = m_outputFormat;
// ... then later:
int err = avio_open( &m_formatContext->pb,
m_formatContext->filename, AVIO_FLAG_WRITE );
avformat_write_header( m_formatContext, 0 );
(I am using custom IO - which works for me when using avi as the
container format).
The problem appears when demuxing which I do as follows:
AVInputFormat* inputFormat = av_find_input_format( "rawvideo" );
AVDictionary *options = 0;
av_dict_set( &options, "video_size", "320x240", 0 );
av_dict_set( &options, "pixel_format", "yuv420p", 0 );
m_open = ( avformat_open_input( &m_formatContext, streamName,
inputFormat, &options ) >= 0 );
av_dict_free(&options);
if ( m_open == false )
{
return;
}
int foundStreamInfo = avformat_find_stream_info( m_formatContext, 0 );
if ( foundStreamInfo == -1)
{
m_open = false;
return;
}
This results in an incorrect detection of a rawvideo bytestream
instead of mpeg4:
[rawvideo @ 0x1303140] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from 'puppypc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p,
320x240, 25 tbr, 25 tbn, 25 tbc
As you can see it has correctly determined the container format, but
not the codec. Is there a dictionary option to force the codec to
mpeg4? I tried "codec", and "video_codec", but I can't find where
valid options are documented.
thanks,
Mark
More information about the Libav-user
mailing list