simple_6_transcode_opaque ffmpeg sample encode problem

simple_6_transcode_opaque ffmpeg sample encode problem

I have built the sample simple_6_transcode_opaque - async - ffmpeg from the Media SDK tutorial, and I am trying to run a session described in the MediaSDK FFMPEG white paper. Under point 3 it is stated: Encode raw YUV video data into AVC(H.264) video stream. Mux into mp4 container.

So I run the example attached to the debugger with
sample_encode.exe h264 -i video.yuv -w 640 -h 480 -o out.mp4 -hw -d3d -mux -b 1000 -f 30

I have tried to leave out the -hw -d3d switches. No matter what I try, I always get an error FFmpeg_Reader_Init() - avformat_find_stream_info() returns always -1. Since I could not fine the file video.yuv I used the file test_stream.yuv from the content directory of the Media SDK.

Any idea to get a file that runs the sample as described in the white paper would be greatly appreciated. Thanks!

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Andreas,

Not sure exactly what may be going on.

Is the "simple_6_transcode_opaque - async - ffmpeg" transcode sample working ok? If that is the case, please compare it to the src code you are using for just encode + muxing, there may be some slight differences, requiring updates.

Also, it is possible, that if you are using a recent release of the FFmpeg binaries the FFmpeg APIs may have changed since the creation of this sample, thus resulting in some incompatibility.

Regards,
Petter 

Hello Petter,
thanks for your note - no, and that is my main problem. Before getting our own sourcecode to work, I want to understand and debug the "simple_6_transcode_opaque - async - ffmpeg" transcode sample .

I am using the FFMPEG build from “2012-08-27” as described in the white paper.

The problem always is, that FFmpeg_Reader_Init() - avformat_find_stream_info() returns always -1. ffmpeg_integration.cpp line 101.

I assume I just use an 'incorrect' input file? I cannot locate the file "video.yuv" that is referred to in the white paper.

Here are my command line arguments:

sample_encode.exe h264 -i video.yuv -w 176 -h 96 -o out.mp4 -mux -b 1000 -f 30

When I break in ffmpeg_integration.cpp line 101, I have the following information in the Visual Studio command window.

[IMGUTILS @ 0045e794] Picture size 0x0 is invalid
[IMGUTILS @ 0045e62c] Picture size 0x0 is invalid
[rawvideo @ 002e33e0] Could not find codec parameters for stream 0 (Video: rawvi
deo, yuv420p): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[rawvideo @ 002e33e0] Estimating duration from bitrate, this may be inaccurate
FFMPEG: Couldn't find stream information

Thanks,

Andreas

Hi Andreas,

Based on your description I do not understand your setup. You refer to two different samples, (1) the transcode sample "simple_6_transcode_opaque - async - ffmpeg" part of the Media SDK tutorial, and (2) the quite old encode sample code that was part of Media SDK muxing with FFmpeg white paper.

The code reference "FFmpeg_Reader_Init" is part of (1) but the line number you refer to is not corresponding to the tutorial sample code which leads me to believe you are using your own modified code.

Note that (1) is a transcode sample and the call to avformat_find_stream_info() in FFmpeg_Reader_Init() is used to parse a media container not a raw YUV file.

Then in your post you abruptly refer to a command line which corresponds to the encode sample (2) ?

Regards,
Petter 

Hello Petter,

thanks for your note and help. I did indeed get the line numbers in "FFmpeg_Reader_Init", as well as the two different samples for the FFMPEG integration mixed up a bit. I have it all working now.

Thanks,
Andreas

Leave a Comment

Please sign in to add a comment. Not a member? Join today