So this is the piece to the puzzle I am missing: * where does one set the output pixel format / video codec to CODEC_ID_RAWVIDEO ? I have > > m_pOutputFormat = av_guess_format(NULL, filename, NULL); > > m_pFormatContext = avformat_alloc_context(); > > m_pFormatContext->oformat = m_pOutputFormat;
So after I get a format context then I can go in and tweak the various fields? Sure wish someone would write a book Thanks > -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Paul B Mahol > Sent: Monday, January 21, 2013 1:06 PM > To: This list is about using libavcodec, libavformat, libavutil, libavdevice and > libavfilter. > Subject: Re: [Libav-user] How to specify output format > > On 1/21/13, jim morgenstern <[email protected]> wrote: > > Paul -- couple of problems > > > > I did as you suggested and specified the output file as: *.nut > > ** ffmpeg associates the MPEG4 codec with this output and I want > > uncompressed > > ** the audio stream bombs > > > > Thanks for any help you can provide > > I said you must set video codec to rawvideo aka CODEC_ID_RAWVIDEO. > > > > > Here is a code snippet, then screen output from ffmpeg: > > ========= > > > > m_pOutputFormat = av_guess_format(NULL, filename, NULL); > > m_pFormatContext = avformat_alloc_context(); > > m_pFormatContext->oformat = m_pOutputFormat; > > _snprintf_s(m_pFormatContext->filename, > > sizeof(m_pFormatContext->filename), "%s", filename); > > > > // add the audio and video streams using the default format codecs and > > initialize the codecs. > > m_pAudioStream = NULL; > > if (m_pOutputFormat->audio_codec != CODEC_ID_NONE) > > { > > m_pAudioStream = add_audio_stream(m_pFormatContext, > > m_pOutputFormat->audio_codec, channels); > > } > > // and the abort comes from add_audio_stream ================== > > > > Starting MediaFileIO for D:\Data\Solavei.mov > > > > [mov,mp4,m4a,3gp,3g2,mj2 @ 00ad3320] Stream #1: not enough frames to > > estimate ra te; consider increasing probesize > > [mov,mp4,m4a,3gp,3g2,mj2 @ 00ad3320] Stream #2: not enough frames to > > estimate ra te; consider increasing probesize > > > > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Data\Solavei.mov': > > Metadata: > > major_brand : qt > > minor_version : 537199360 > > compatible_brands: qt > > creation_time : 2012-07-12 23:41:43 > > Duration: 00:00:11.81, start: 0.000000, bitrate: 598161 kb/s > > Stream #0:0(eng): Video: v210 (v210 / 0x30313276), yuv422p10le, > > 1280x720, 59 > > 6600 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc > > Metadata: > > creation_time : 2012-07-12 23:41:43 > > handler_name : Apple Alias Data Handler > > Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, > > stereo, s1 6, 1536 kb/s > > Metadata: > > creation_time : 2012-07-12 23:41:43 > > handler_name : Apple Alias Data Handler > > Stream #0:2(eng): Data: none (tmcd / 0x64636D74) > > Metadata: > > creation_time : 2012-07-12 23:42:01 > > handler_name : Apple Alias Data Handler > > timecode : 00:00:28;11 > > > > > > Starting MediaFileIO for => D:\Data\TestSol.nut Output #0, nut, to > > 'D:\Data\TestSol.nut': > > Stream #0:0: Video: mpeg4, yuv420p, 1280x720, q=2-31, 5942 kb/s, > > 90k tbn, 29 tbc > > Stream #0:1: Audio: vorbis, 44100 Hz, 1 channels, s16, 64 kb/s > > [libvorbis @ 054e20c0] Specified sample_fmt is not supported. > > > > File Initialization Exception: output !! > > MediaFileWriter::open_audio: Could not open audio codec //this is my app > > error message > > You want to store audio? If yes. What codec? > > > > > > > > > > > > > >> -----Original Message----- > >> From: [email protected] > >> [mailto:[email protected]] > >> On Behalf Of Paul B Mahol > >> Sent: Monday, January 21, 2013 11:26 AM > >> To: This list is about using libavcodec, libavformat, libavutil, > > libavdevice and > >> libavfilter. > >> Subject: Re: [Libav-user] How to specify output format > >> > >> On 1/21/13, jim morgenstern <[email protected]> wrote: > >> > Paul > >> > Thanks for the specifics. I don't like headerless so .raw and .yuv > >> > are out. > >> > > >> > Hadn't heard of .nut; I don't understand your comment about > >> > -vcodec > > etc. > >> > I am writing a C++ app not using the command line utilities. > >> > >> I mean video codec should be set to rawvideo. And pixel format for > >> that > > codec > >> should be same as one detected in input. > >> > >> > > >> > So what all do I need to know about .nut? Googled but cannot find > >> > any definitions or spec for the file. Can you send a url? > >> > >> You really should not need know anything, you just set output format > >> to > > nut and > >> it is all what is needed. I doubt you want nut spec if you gonna use > > libavformat to > >> read nut files. > >> > >> > > >> > > >> > > >> >> -----Original Message----- > >> >> From: [email protected] > >> >> [mailto:[email protected]] > >> >> On Behalf Of Paul B Mahol > >> >> Sent: Monday, January 21, 2013 10:41 AM > >> >> To: This list is about using libavcodec, libavformat, libavutil, > >> > libavdevice and > >> >> libavfilter. > >> >> Subject: Re: [Libav-user] How to specify output format > >> >> > >> >> On 1/21/13, jim morgenstern <[email protected]> wrote: > >> >> > So what Specifically is the specific format extension that I > >> >> > give to ffmpeg that gives me the "raw video format" you cited? > >> >> > >> >> Headerless : .raw, .yuv (You need to remember pixel format and > >> >> dimensions stored in it) > >> >> > >> >> With headers : .nut (You must use -vcodec rawvideo and -pix_fmt > >> >> same as > >> > your > >> >> input video > >> >> to keep video uncompressed) > >> >> There are others like .avi, .. but they may not support pixel > >> >> format > >> > of your > >> >> input video. > >> >> > >> >> > > >> >> >> -----Original Message----- > >> >> >> From: [email protected] > >> >> >> [mailto:[email protected]] > >> >> >> On Behalf Of Paul B Mahol > >> >> >> Sent: Monday, January 21, 2013 9:50 AM > >> >> >> To: This list is about using libavcodec, libavformat, > >> >> >> libavutil, > >> >> > libavdevice and > >> >> >> libavfilter. > >> >> >> Subject: Re: [Libav-user] How to specify output format > >> >> >> > >> >> >> On 1/21/13, jim morgenstern <[email protected]> wrote: > >> >> >> >>> where can I find the list of formats and their extensions? > >> >> >> >> In the source code > >> >> >> > > >> >> >> > Yes but the source code is hundreds of files; can you tell > >> >> >> > me which one has the list and the mapping? > >> >> >> > > >> >> >> > > >> >> >> >> > . What is your recommended format for uncompressed HD > >> video > >> > ? > >> >> >> >> > >> >> >> >> libx264 is the state of the art encode > >> >> >> > > >> >> >> > But I do not want any encoding or compression: I want flat > >> >> >> > file that can be read later on for more processing. So is > >> >> >> > there a recommendation for a particular file format that does this? > >> >> >> > >> >> >> Depends on what you gonna use for more processing later. > >> >> >> Depending on available storage and CPU speed you could use raw > >> >> >> video formats... > >> >> >> > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> >> -----Original Message----- > >> >> >> >> From: [email protected] > >> >> >> >> [mailto:[email protected]] > >> >> >> >> On Behalf Of Stefano Sabatini > >> >> >> >> Sent: Monday, January 21, 2013 7:50 AM > >> >> >> >> To: This list is about using libavcodec, libavformat, > >> >> >> >> libavutil, > >> >> >> > libavdevice and > >> >> >> >> libavfilter. > >> >> >> >> Subject: Re: [Libav-user] How to specify output format > >> >> >> >> > >> >> >> >> In data Saturday 2013-01-19 01:55:22 -0500, Jim Morgenstern > >> >> >> >> ha > >> >> >> >> scritto: > >> >> >> >> > I have C++ app [win 7] that is reading and writing > >> >> >> >> > video/audio > >> >> > stream. > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > When I specify the output file as xxxx.MOV I am getting > >> >> >> >> > H264 compressed video at 24 fps. > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > I want to have output as uncompressed at 30 or 60 fps > >> >> >> >> > according to the input. > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > > >> >> >> >> > Some simple [I hope] questions: > >> >> >> >> > > >> >> >> >> > . What is [where can I find] the mapping between file > > name > >> >> >> > extension > >> >> >> >> > and format used? > >> >> >> >> > >> >> >> >> In the source code, or you can show the ".extensions" field > >> >> >> >> for all the > >> >> >> > registered > >> >> >> >> AVInput/OutputFormats. > >> >> >> >> > >> >> >> >> > > >> >> >> >> > . Can I specify the output format I want rather than > > using > >> >> >> >> > av_guess_format ? all the tutorials use guess > >> >> >> >> > >> >> >> >> Yes, you need to specify avformat_alloc_output_context2() > >> >> >> >> and rely on oformat/format_name parameters, or use > >> >> >> >> av_guess_format(). > >> >> >> >> > >> >> >> >> > > >> >> >> >> > . What is your recommended format for uncompressed HD > >> video > >> > ? > >> >> >> >> > >> >> >> >> libx264 is the state of the art encoder (but it has > >> >> >> >> licensing > >> >> >> > constraints). > >> >> >> >> _______________________________________________ > >> >> >> >> Libav-user mailing list > >> >> >> >> [email protected] > >> >> >> >> http://ffmpeg.org/mailman/listinfo/libav-user > >> >> >> > > >> >> >> > _______________________________________________ > >> >> >> > Libav-user mailing list > >> >> >> > [email protected] > >> >> >> > http://ffmpeg.org/mailman/listinfo/libav-user > >> >> >> > > >> >> >> _______________________________________________ > >> >> >> Libav-user mailing list > >> >> >> [email protected] > >> >> >> http://ffmpeg.org/mailman/listinfo/libav-user > >> >> > > >> >> > _______________________________________________ > >> >> > Libav-user mailing list > >> >> > [email protected] > >> >> > http://ffmpeg.org/mailman/listinfo/libav-user > >> >> > > >> >> _______________________________________________ > >> >> Libav-user mailing list > >> >> [email protected] > >> >> http://ffmpeg.org/mailman/listinfo/libav-user > >> > > >> > _______________________________________________ > >> > Libav-user mailing list > >> > [email protected] > >> > http://ffmpeg.org/mailman/listinfo/libav-user > >> > > >> _______________________________________________ > >> Libav-user mailing list > >> [email protected] > >> http://ffmpeg.org/mailman/listinfo/libav-user > > > > _______________________________________________ > > Libav-user mailing list > > [email protected] > > http://ffmpeg.org/mailman/listinfo/libav-user > > > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user _______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
