Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
Showing a video using C (not C++ or C#)
1er octobre 2013, par user2833591I 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 JonaI'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 sinivI 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 VigoI executed the command
ffmpeg -list_devices true -f dshow -i dummy
to find out that the audio device is 'Realtek HD Audio Input'.
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"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 jAckOdEHere 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 audiosample 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?