Newest 'ffmpeg' Questions - Stack Overflow

http://stackoverflow.com/questions/tagged/ffmpeg

Les articles publiés sur le site

  • Showing a video using C (not C++ or C#)

    1er octobre 2013, par user2833591

    I learned programming in C using the Tscope-library (which is incompatible with C++ and C#), so I'm completely stuck with C.

    The Tscope-library is used to program small psychological experiments, it allows for functions that generate random numbers or produce images on the screen. Not sure if it might be a problem, but Tscope does generate it's own 'window'.

    So I wanted my experiment to show videos (currently in .wmv-format, but that can be changed, no problem), but I don't know how to do so (neither in code nor concept).

    I have come across FFmpeg, but the longer I see its code, the more I worry it's not meant for C (as in, parts of the code appear completely unknown to me). Could someone please help me? If FFmpeg is indeed the answer, could someone give a quick run-down of the idea behind how it works (I've seen something about frames being put together)?

  • Is it worth including external decoding libraries for AAC and OGG mainly ?

    1er octobre 2013, par Jona

    I'm decoding AAC, OGG, and ASF/ASX/WMA/MMS type data using FFmpeg. I'm wondering if It is recommended to include external libraries to the FFmpeg build? Or is the latest FFmpeg release project contains the best and efficient decoders and there really isn't any need to include other libraries?

  • webm local udp streaming using FFMPEG

    1er octobre 2013, par siniv

    I was just started to use ffmpeg recently and stumbled on this streaming problem. Scenario: i want to live stream a webcam in local network. Both server and client will be using windows platform.

    Current feasible solution: using ffmpeg simple command line

    to test it quickly i tried to locally stream it (the input doesn't really matter btw in this question).

     On server -> ffmpeg -f dshow -i video="cam1":audio="mic1" -r 30 -g 0 -vcodec h264 -acodec libmp3lame -tune zerolatency -preset ultrafast -f mpegts udp://localhost:6789
     On client(the same computer) -> ffplay udp://localhost:6789
    

    The above works just fine, except for the latency, which i'm getting at about 1-2 second delay.

    Now i want to try to change the encoder to use libvpx (vp8) for video and vorbis for audio (i changed the input to a pre-recorded h264 video, but it really doesn't matter)

     On server 
        >ffmpeg -i "suits.mp4" -r 30 -g 0 -vcodec libvpx -acodec vorbis -strict -2 -f webm -f mpegts udp://localhost:6789
         On client(the same computer) -> ffplay udp://localhost:6789
    However this doesn't work... And below are console outputs:
        > onserver ->
        > ffmpeg version N-56165-gae12d65 Copyright (c) 2000-2013 the FFmpeg
        > developers   built on Sep 10 2013 19:42:46 with gcc 4.7.3 (GCC)  
        > configuration: --enable-gpl --enable-version3 --disable-w32threads
        > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib   libavutil      52. 43.100 / 52. 43.100   libavcodec     55. 31.101 / 55. 31.101   libavformat    55. 16.102 / 55. 16.102   libavdevice    55.  3.100 / 55.  3.100   libavfilter     3. 84.100 /  3. 84.100   libswscale      2.  5.100 / 
        > 2.  5.100   libswresample   0. 17.103 /  0. 17.103   libpostproc    52.  3.100 / 52.  3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Suits.mp4':   Metadata:
        >     major_brand     : isom
        >     minor_version   : 1
        >     compatible_brands: isom
        >     creation_time   : 2011-09-08 11:43:25   Duration: 00:42:14.87, start: 0.000000, bitrate: 882 kb/s
        >     Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 720x402 [SAR 1:1 DAR 120:67], 750 kb/s, 23.98 fps,
        > 23.98 tbr, 24k tbn, 47.95 tbc (default)
        >     Metadata:
        >       creation_time   : 2011-09-08 11:43:25
        >     Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
        >     Metadata:
        >       creation_time   : 2011-09-08 11:43:25 [libvpx @ 05392a80] v1.2.0 Output #0, mpegts, to 'udp://localhost:6789':   Metadata:
        >     major_brand     : isom
        >     minor_version   : 1
        >     compatible_brands: isom
        >     encoder         : Lavf55.16.102
        >     Stream #0:0(und): Video: vp8 (libvpx), yuv420p, 720x402 [SAR 1:1 DAR 120:67], q=-1--1, 200 kb/s, 90k tbn, 30 tbc (default)
        >     Metadata:
        >       creation_time   : 2011-09-08 11:43:25
        >     Stream #0:1(und): Audio: vorbis, 48000 Hz, stereo, fltp (default)
        >     Metadata:
        >       creation_time   : 2011-09-08 11:43:25 Stream mapping:   Stream #0:0 -> #0:0 (h264 -> libvpx)   Stream #0:1 -> #0:1 (aac -> vorbis) Press [q] to stop, [?] for help frame=42535 fps= 51 q=0.0 Lsize= 
        > 143539kB time=00:23:38.28 bitrate= 829.1kbits/s dup=8541 drop=0    
        > video:99155kB audio:28125kB subtitle:0 global headers:3kB muxing
        > overhead 12.772155% Received signal 2: terminating.
    
    > on client    
    > ffplay version N-56165-gae12d65 Copyright (c) 2003-2013 the FFmpeg
    > developers   built on Sep 10 2013 19:42:46 with gcc 4.7.3 (GCC)  
    > configuration: --enable-gpl --enable-version3 --disable-w32threads
    > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib   libavutil      52. 43.100 / 52. 43.100   libavcodec     55. 31.101 / 55. 31.101   libavformat    55. 16.102 / 55. 16.102   libavdevice    55.  3.100 / 55.  3.100   libavfilter     3. 84.100 /  3. 84.100   libswscale      2.  5.100 / 
    > 2.  5.100   libswresample   0. 17.103 /  0. 17.103   libpostproc    52.  3.100 / 52.  3.100
    >     nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   [mpegts @ 02eb8620] probed stream 0 failed
    >     nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   [mp3 @ 02ed75a0] Header missing
    >     Last message repeated 1 times [mp3 @ 02ed75a0] Header missing
    >     La    Last message repeated 13 times
    >     nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   [mp3 @ 02ed75a0] Header missing  Last message repeated 13 times
    >     nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   [mp3 @ 02ed75a0] Header missing    Last message repeated 9 times
    >     nan    :  0.000 fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0   [mp3 @ 02ed75a0] Header missing [mpegts @ 02eb8620] decoding for
    > stream 1 failed [mpegts @ 02eb8620] Could not find codec parameters
    > for stream 0 (Unknown: none ([6][0][0][0] / 0x0006)): unknown codec
    > Consider increasing the value for the 'analyzeduration' and
    > 'probesize' options [mpegts @ 02eb8620] Could not find codec
    > parameters for stream 1 (Audio: mp3 ([6][0][0][0] / 0x0006), 0
    > channels, s16p): unspecified frame size Consider increasing the value
    > for the 'analyzeduration' and 'probesize' options
    > udp://localhost:6789: could not find codec parameters
    

    So does the point to point streaming for ffmpeg just doesn't work for vp8 or am i missing something? Btw, the end goal is to create a similar video chat based framework and i'll appreciate any suggestion. I'm reading up on webRTC now.

  • Microphone issue in audio streaming using FFMPEG

    1er octobre 2013, par Vigo

    I executed the command

    ffmpeg -list_devices true -f dshow -i dummy  
    

    to find out that the audio device is 'Realtek HD Audio Input'.

    enter image description here

    But executing the command

    ffmpeg -f dshow -i audio="Microphone (Realtek HD Audio Input" -acodec libmp3lame -ab 128k -ac 2 -ar 44100 -re -f rtp://10:14:35:12:1234  
    

    gives the error
    "Could not find audio device. audio='Microphone (Realtek HD Audio Input: Input/output error"

    enter image description here

    I have checked for the working of the microphone and it works fine. Please let me know what is the issue here.

    The machine runs on Windows-XP SP2.

  • How are audio frames decoded by libavcodec ?

    1er octobre 2013, par jAckOdE

    Here is how my process of decoding an audio stream using ffmpeg's libav*

    [videofile]--> (read audio packets) --> [pkts queue] --> (decoder) --> speaker's sample buffer

    for some reason i need to insert a buffer after decoder

    [videofile]--> (read audio packets) --> [pkts queue] --> (decoder) --> [samples buffer] --> speaker's sample buffer

    Audio samples in the samples buffer are LPCM 16bits. To save the pts of the audio sample buffer i save pts of first samples. By that way, i can calculate pts of any sample in the buffer.

    Problem is that the calculation is correct only if the audio stream contains contiguous audio samples. Do ffmpeg's decoded audio frames always contain contiguous samples?