One [last] question: My 3 band image is in YUV422 pixel format so its in three 2D arrays . . . is the CodecID still RAWIMAGE or is there a better or correct choice ?
jm > -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Paul B Mahol > Sent: Monday, January 21, 2013 3:54 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: > > 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? > > m_pFormatContext->oformat->video_codec = CODEC_ID_RAWVIDEO. > > When initialzing encoder you specify pix_fmt: example: > avctx->pix_fmt = PIX_FMT_YUV420P; > > There is example code: > > http://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/examples/muxing.c > > > 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 > > > _______________________________________________ > 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
