[gst-devel] how to learn from .yuv files and encode with h.264?

Marco Ballesio gibrovacco at gmail.com
Sun Oct 31 21:33:38 CET 2010


Hi,

it appears the app you sent is actually more complex than what you need..
btw, some functions are not accessible from the code snippet you sent.

I found some soare time to write a minimalistic send/receive couple of
applications, the first one reading from a yuv file generated with:

gst-launch -v videotestsrc num-buffers=2000 ! "video/x-raw-yuv, width=320,
height=240, format=(fourcc)I420" ! filesink location=test.yuv

and streaming to an address specified from command line. The second app
opens a connection and renders all the h264 frames it receives from it.
Hopefully it will give you an idea about how to get your app working.

P.S. added back the gst-devel mailing list to the loop.
P.P.S hopefully the attachment will make its way through the moderation.

Regards

On Fri, Oct 29, 2010 at 4:57 PM, Rafael Sousa <rafael.lmsousa at gmail.com>wrote:

> Hi Gibro,
>
> As I said, I'm a newbie in this list, and I don't know exactly how to fix
> the issues in my code, so, I'll send to you my whole code to you. If you may
> take a look I'd be be very gratefull for your help.
>
> regards
>
>
> On Fri, Oct 29, 2010 at 2:05 AM, Gibro Vacco <gibrovacco at gmail.com> wrote:
>
>>  Hi,
>>
>> it appears the sources you attached to the message did not go through the
>> moderation.. btw a few comments below.
>>
>> ..snip..
>>
>> > *//Possible problem*
>> > * **size = 352*288*(3/2);*
>> > * **buffer = gst_buffer_try_new_and_alloc (size);*
>>
>> is there a particular reason for allocating this from the application? The
>> pipeline is usually handling buffer allocation/release automagically.
>>
>> > * **if (buffer==NULL){*
>> > * **  g_printerr("failed to allocate memory\n");*
>> > * **}*
>> > *//Possible problem *
>> > * **gst_buffer_set_caps (buffer,caps);*
>> >  *//Set up the video encoding parameters*
>> > * **caps = gst_caps_new_simple ("video/x-raw-yuv",*
>> > * **"format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'),*
>> > * **"width",  G_TYPE_INT, 352,*
>> > * **"height", G_TYPE_INT, 288,*
>> > * **"framerate", GST_TYPE_FRACTION, 25, 1, NULL);*
>> > * **if ( !caps ) {*
>> > * **g_printerr("Failed to create caps\n");*
>> > * **return 0;*
>> > * **}*
>> >  err = gst_element_link_filtered(filesrc, time, caps);
>>
>> what is the time element? It's possible caps are not propagated to the
>> encoder if not directly connected to the filesrc.
>>
>> Moreover, I didn't catch where you're setting the blocksize property in
>> your filesrc to "size".
>>
>> ..Snip..
>>
>> > There is something wrong or missing in this function? How can I make
>> > what I want to work?
>>
>> See my comments above ;)
>>
>> P.S. Maybe you could attach (or better copy to pastebin) the output when
>> setting GST-DEBUG to 2 from the shell prior executing your binary.
>>
>> Regards
>>
>>
>> >
>> > Please, I need help.
>> >
>> > thanks for the previous answers and thanks in advance
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20101031/75aef9ec/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: simplestream.tgz
Type: application/x-gzip
Size: 1809 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20101031/75aef9ec/attachment.bin>


More information about the gstreamer-devel mailing list