So I performed this simple experiment:

I went in and added a printf() to open_input_file() function in utils.c of
ffmpeg source code, then reconfigured, recompiled and reinstalled ffmpeg.
When I run the command line ffmpeg I see the printf output, but when I call
open_input_file() from my program, I *do not* see it. So the libavformat
included in my program is not the same as the one used by command line
ffmpeg. I was including /usr/local/lib in my Eclipse project, so is this is
not correct?

Interesting... How come there are two versions of the same library?

C



On Mon, Jun 22, 2009 at 3:29 PM, Cuneyt Taskiran <[email protected]>wrote:

> Luca,
> Thanks for your help offer. What's really maddening about this problem is
> that the command line ffmpeg works, i.e. I can receive MPEG 2 TS data and
> save it to a file. But the API open file call hangs.
>
> The UDP address I'm using is behind a firewall so I cannot easily make that
> accessible. However, if you have VLC, you can start a UDP stream with
> vlc -vvv <video filename to broadcast> --sout <UDP address to broadcast>
> -ttl 12
>
> The code is below.
>
> Thanks,
>
> C
>
> #include <stdlib.h>
> #include <stdio.h>
>
> #include <libavformat/avio.h>
> #include <libavcodec/avcodec.h>
> #include <libavformat/avformat.h>
>
> int main( int argc, char* argv[] )
> {
>     AVFormatContext *pFormatCtx;
>     char* input_filename = "udp://225.1.1.14:5014";
>     int i, videoStream;
>     AVCodecContext *pCodecCtx;
>
>     // Initialize the library by registering all file formats and codecs so
>     // they can be used automatically.
>     av_register_all();
>     printf("Registered file formats and codecs\n");
>
>     /*
>      * Getting ready to read the input.
>      */
>     // Open the video file. The last three arguments to open() are file
> format,
>     // buffer size, and format options, we let libavformat to select these.
>     printf("Input name: %s\n", argv[1]);
>     if( av_open_input_file(&pFormatCtx, argv[1], NULL, 0, NULL) != 0 ) {
>         fprintf(stderr, "could not open input: %s!\n", argv[1]);
>         return -1;
>     }
>
>     printf("opened input\n");
>
>     // Get stream information and dump it
>     if( av_find_stream_info(pFormatCtx) < 0 ) {
>         fprintf(stderr, "could not find stream information\n");
>         return -1;
>     }
>     dump_format(pFormatCtx, 0, input_filename, 0 );
>
>
> On Sat, Jun 20, 2009 at 6:36 AM, Luca Abeni <[email protected]> wrote:
>
>> Hi,
>>
>> Cuneyt Taskiran wrote:
>>
>>> I am trying to read Multicast MPEG-2 TS data from the URI udp://
>>> 225.1.1.14:5014. I can display the video from this URI using VLC.
>>>
>> [...]
>>
>>> However, when I try to open the same URI from my program,
>>> av_open_input_file() hangs with no error messages. Here's what I have:
>>>    av_register_all();
>>>    printf("Input name: %s\n", input_filename);
>>>    if( av_open_input_file(&pFormatCtx, input_filename, NULL, 0, NULL) !=
>>> 0
>>> ) {
>>>        fprintf(stderr, "could not open input: %s!\n", input_filename);
>>>        return -1;
>>>    }
>>>
>>> I can't see what can be wrong with the code. Should I be using
>>> av_open_input_stream() instead?
>>>
>>
>> If you provide an easy way to reproduce the problem you are seeing (sample
>> code that compiles, and a URL that does not work - or a way to generate a
>> network stream that does not work), I'll try to have a look at this problem.
>>
>>
>>                                Luca
>> _______________________________________________
>> libav-user mailing list
>> [email protected]
>> https://lists.mplayerhq.hu/mailman/listinfo/libav-user
>>
>
>
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to