Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
switch between video streaming
5 décembre 2012, par user1225084I am struggling with switching between multiple live streams. For example, I have five live streaming servers streaming(HTTP or RTSP) and I want to put some broker between those (five) streaming sources and destination so that output to the destination would be one video streaming (later I may change the streaming source again using switch). Broker plays role of switcher, My question is, is there such open source "switcher"? Or how this technology works?
here is link to similar question but I want some open source or some brief guidance about how it could be implemented: http://forums.creativecow.net/thread/117/858680
Thank You in advance
-
How to compile ffmpeg with the new Flascc compiler ?
5 décembre 2012, par charlesI have tried to compile ffmpeg with the new flascc compiler with the following parameters ( I set only h263 ability as a test):
PATH=/cygdrive/c/download/flascc/sdk/usr/bin:$PATH ./configure --enable-static --disable-shared --extra-libs=-static --extra-cflags=--static --disable-doc --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-avfilter --disable-pthreads --disable-everything --enable-muxer=flv --enable-encoder=flv --enable-encoder=h263 --disable-mmx --disable-shared --prefix=bin/ --disable-protocols --disable-network --disable-optimizations --disable-debug --disable-asm --disable-stripping --prefix=/cygdrive/c/download/flascc/sdk/usr
Then I tried to make as follows:
PATH=/cygdrive/c/download/flascc/sdk/usr/bin:$PATH make PATH=/cygdrive/c/download/flascc/sdk/usr/bin:$PATH make install
*.a files have been created in the subdirectories, like: libavcodec.a. But how can I create an .swf/.swc from the *.a files?
Thanks! Charles
-
FFMpeg(Android) av_read_frame or avcodec_decode_video2 returning same colour
5 décembre 2012, par CehmI've been experimenting FFMpeg for the past 2 weeks and I'm having a bit of trouble... First I've been working with a Galaxy S3, which worked super fine, gave me the best pictures ever but I recently switched to a Galaxy NEXUS which gave me a bunch of problems...
What I'm doing : I just extract frame from a video
How I'm doing :
while(av_read_frame(gFormatCtx, &packet)>=0) { // Is this a packet from the video stream? if(packet.stream_index==videoStream) { // Decode video frame avcodec_decode_video2(gVideoCodecCtx, pFrame, &frameFinished, &packet); // Did we get a video frame? if(frameFinished) {//and so on... But our problem is already here...
Ok, now
pFrame
is holding a YUV representation of my frame... So, in order to check what I'm getting from theavcodec_decode_video2(...)
function I'm just writingpFrame
to a file so I can see it with any YUV reader on the web.char yuvFileName[100]; sprintf(yuvFileName,"/storage/sdcard0/yuv%d.yuv",index); FILE* fp = fopen(yuvFileName, "wb"); int y; // Write pixel data for(y=0; yheight; y++) { fwrite(pFrame->data[0]+y*pFrame->linesize[0], 1, gVideoCodecCtx->width, fp); } for(y=0; yheight/2; y++) { fwrite(pFrame->data[1]+y*pFrame->linesize[1], 1, gVideoCodecCtx->width/2, fp); } for(y=0; yheight/2; y++) { fwrite(pFrame->data[2]+y*pFrame->linesize[2], 1, gVideoCodecCtx->width/2, fp); } fclose(fp);
Ok so Here I now have my result on a file store @
/storage/sdcard0/blabla.YUV
on my Galaxy Nexus root memory.But If I open the file with (for example XnView, which is meant to display YUV type properly) I only see Dark green on the picture.
What bothers me is that everything worked properly on Galaxy S3 but something failed on GNexus...
So here's my question : Why doesn't it work on Galaxy Nexus ?
Compatibility problem between Gnexus and armeabiv7 ?
I don't know !
Regards, Cehm
-
Converting correctly a .mov to .swf [migrated]
5 décembre 2012, par RogerWilgoI have a .mov (h264/AAC) and I want a .swf file with loop.
My ffmpeg line:
ffmpeg -i in.mov -acodec mp3 -ar 22050 -s 600x338 -vcodec flv -r 25 -f swf -qscale 0 -f out3.swf
The video part is perfect but for the sound I have a problem: when i'm playing this .swf with different browsers, I have no sound. But I have sound with VLC or mplayer on the same file.
What I am doing wrong and why I have no sound only in browser ?
-
ffmpeg mp4 to mpeg and back again
5 décembre 2012, par bruxI am concatenating mp4 files, from research I have found out you must first encode to mpeg and contatenate those, then convert the larger mpeg file back to mp4.
For simplicity I am just attempting to convert a.mp4 to mpeg and then back to mp4 (i dont need to worry about the concatenation for now)
Here is how I first convert to my intermediary mpeg from mp4:
ffmpeg -i a.mp4 -q:v 2 -vcodec mpeg2video -acodec copy b.mpg
The file is encoded with no errors, to convert back to mp4 I do:
ffmpeg -i b.mpg -vcodec libx264 -acodec copy out.mp4
Everything seems to work with no errors but out.mp4 just plays the first few frames and then freezes, and the time is skipping randomly as the duration passes for the file. No sound is heard also.
***************************************** Here is the output of the first command ***************************************** $ ffmpeg -i a.mp4 -q:v 2 -vcodec mpeg2video -acodec copy b.mpg ffmpeg version 0.9, Copyright (c) 2000-2011 the FFmpeg developers built on Jun 12 2012 20:43:50 with gcc 4.4.3 configuration: --enable-cross-compile --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --prefix=/data/data/org.witness.sscvideoproto --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --sysroot=/home/n8fr8/dev/android/ndk/platforms/android-3/arch-arm --enable-version3 --enable-gpl --enable-small --enable-memalign-hack --disable-yasm --disable-doc --enable-decoder=mjpeg --enable-decoder=rawvideo --enable-encoder=libx264 --enable-muxer=mp4 --enable-demuxer=image2 --enable-demuxer=mjpeg --enable-demuxer=mp4 --enable-demuxer=mov --enable-parser=mjpeg --enable-filter=buffer --enable-filter=buffersink --enable-filter=drawbox --enable-filter=overlay --enable-filter=redact --enable-protocol=file --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib --extra-cflags=-I../x264 --extra-ldflags=-L../x264 --disabl libavutil 51. 32. 0 / 51. 32. 0 libavcodec 53. 42. 0 / 53. 42. 0 libavformat 53. 24. 0 / 53. 24. 0 libavfilter 2. 53. 0 / 2. 53. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb05a90] multiple edit list entries, a/v desync might occur, patch welcome Seems stream 1 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 43.08 (517/12) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'j.mp4': Metadata: major_brand : isom minor_version : 0 compatible_brands: isom3gp4 creation_time : 1946-12-04 21:52:33 Duration: 00:00:05.31, start: 0.000000, bitrate: 1584 kb/s Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, mono, s16, 96 kb/s Metadata: creation_time : 1946-12-04 21:52:33 handler_name : SoundHandle Stream #0:1(eng): Video: h264 (avc1 / 0x31637661), yuv420p, 720x480, 1599 kb/s, SAR 65536:65536 DAR 3:2, 13.97 fps, 43.08 tbr, 90k tbn, 180k tbc Metadata: creation_time : 1946-12-04 21:52:33 handler_name : VideoHandle [buffer @ 0xb247f0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:65536/65536 sws_param: [mpeg @ 0xb23d10] VBV buffer size not set, muxing may fail Output #0, mpeg, to 'out.mpg': Metadata: major_brand : isom minor_version : 0 compatible_brands: isom3gp4 creation_time : 1946-12-04 21:52:33 encoder : Lavf53.24.0 Stream #0:0(eng): Video: mpeg2video, yuv420p, 720x480 [SAR 65536:65536 DAR 3:2], q=2-31, 200 kb/s, 90k tbn, 50 tbc Metadata: creation_time : 1946-12-04 21:52:33 handler_name : VideoHandle Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, mono, 96 kb/s Metadata: creation_time : 1946-12-04 21:52:33 handler_name : SoundHandle Stream mapping: Stream #0:1 -> #0:0 (h264 -> mpeg2video) Stream #0:0 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 20 fps= 0 q=0.0 size= 14kB time=00:00:00.38 bitrate= 301.8kbits/s dup=15 frame= 34 fps= 28 q=0.0 size= 132kB time=00:00:00.66 bitrate=1638.4kbits/s dup=25 frame= 45 fps= 25 q=0.0 size= 230kB time=00:00:00.88 bitrate=2141.1kbits/s dup=33 frame= 55 fps= 22 q=0.0 size= 294kB time=00:00:01.08 bitrate=2230.0kbits/s dup=40 frame= 66 fps= 21 q=0.0 size= 306kB time=00:00:01.21 bitrate=2061.5kbits/s dup=48 frame= 79 fps= 21 q=0.0 size= 436kB time=00:00:01.56 bitrate=2289.6kbits/s dup=57 frame= 88 fps= 20 q=0.0 size= 514kB time=00:00:01.74 bitrate=2419.9kbits/s dup=63 frame= 100 fps= 21 q=0.0 size= 584kB time=00:00:01.98 bitrate=2416.2kbits/s dup=71 frame= 110 fps= 20 q=0.0 size= 618kB time=00:00:02.17 bitrate=2326.6kbits/s dup=78 frame= 116 fps= 19 q=0.0 size= 650kB time=00:00:02.24 bitrate=2377.1kbits/s dup=82 frame= 132 fps= 20 q=0.0 size= 830kB time=00:00:02.62 bitrate=2595.2kbits/s dup=94 frame= 144 fps= 20 q=0.0 size= 904kB time=00:00:02.86 bitrate=2589.4kbits/s dup=103frame= 156 fps= 20 q=0.0 size= 970kB time=00:00:03.10 bitrate=2563.3kbits/s dup=112frame= 168 fps= 20 q=0.0 size= 1006kB time=00:00:03.20 bitrate=2575.4kbits/s dup=121frame= 179 fps= 20 q=0.0 size= 1138kB time=00:00:03.56 bitrate=2618.7kbits/s dup=129frame= 191 fps= 20 q=0.0 size= 1240kB time=00:00:03.80 bitrate=2673.2kbits/s dup=138frame= 203 fps= 20 q=0.0 size= 1342kB time=00:00:04.04 bitrate=2721.2kbits/s dup=147frame= 215 fps= 20 q=0.0 size= 1426kB time=00:00:04.22 bitrate=2765.6kbits/s dup=156frame= 227 fps= 20 q=0.0 size= 1536kB time=00:00:04.52 bitrate=2783.8kbits/s dup=165frame= 239 fps= 20 q=0.0 size= 1646kB time=00:00:04.76 bitrate=2832.8kbits/s dup=174frame= 248 fps= 20 q=0.0 size= 1726kB time=00:00:04.94 bitrate=2862.2kbits/s dup=181frame= 248 fps= 19 q=0.0 Lsize= 1738kB time=00:00:04.94 bitrate=2882.1kbits/s dup=181 drop=0 video:1665kB audio:62kB global headers:0kB muxing overhead 0.639219% ***************************************** Here is the output of the second command ***************************************** $ ffmpeg -i out.mpg -vcodec libx264 -acodec copy out1.mp4 ffmpeg version 0.9, Copyright (c) 2000-2011 the FFmpeg developers built on Jun 12 2012 20:43:50 with gcc 4.4.3 configuration: --enable-cross-compile --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --prefix=/data/data/org.witness.sscvideoproto --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --sysroot=/home/n8fr8/dev/android/ndk/platforms/android-3/arch-arm --enable-version3 --enable-gpl --enable-small --enable-memalign-hack --disable-yasm --disable-doc --enable-decoder=mjpeg --enable-decoder=rawvideo --enable-encoder=libx264 --enable-muxer=mp4 --enable-demuxer=image2 --enable-demuxer=mjpeg --enable-demuxer=mp4 --enable-demuxer=mov --enable-parser=mjpeg --enable-filter=buffer --enable-filter=buffersink --enable-filter=drawbox --enable-filter=overlay --enable-filter=redact --enable-protocol=file --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib --extra-cflags=-I../x264 --extra-ldflags=-L../x264 --disabl libavutil 51. 32. 0 / 51. 32. 0 libavcodec 53. 42. 0 / 53. 42. 0 libavformat 53. 24. 0 / 53. 24. 0 libavfilter 2. 53. 0 / 2. 53. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [mp1 @ 0xb0d420] Header missing Last message repeated 8 times [mpeg @ 0xb05a90] Could not find codec parameters (Audio: mp3, 0 channels, s16) Input #0, mpeg, from 'out.mpg': Duration: 00:00:05.24, start: 1.000000, bitrate: 2712 kb/s Stream #0:0[0x1e0]: Video: mpeg2video, yuv420p, 720x480 [SAR 1:1 DAR 3:2], 104857 kb/s, 50 fps, 50 tbr, 90k tbn, 100 tbc Stream #0:1[0x1c0]: Audio: mp3, 0 channels, s16 [buffer @ 0xb77ca0] w:720 h:480 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param: [libx264 @ 0xb0c6e0] using SAR=1/1 [libx264 @ 0xb0c6e0] using cpu capabilities: ARMv6 NEON [libx264 @ 0xb0c6e0] profile High, level 3.1 [libx264 @ 0xb0c6e0] 264 - core 119 r2113 cc129ad - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'out1.mp4': Metadata: encoder : Lavf53.24.0 Stream #0:0: Video: h264 (![0][0][0] / 0x0021), yuv420p, 720x480 [SAR 1:1 DAR 3:2], q=-1--1, 50 tbn, 50 tbc Stream mapping: Stream #0:0 -> #0:0 (mpeg2video -> libx264) Press [q] to stop, [?] for help frame= 248 fps= 3 q=31.0 Lsize= 419kB time=00:00:04.92 bitrate= 697.5kbits/s video:415kB audio:0kB global headers:0kB muxing overhead 0.863133% [libx264 @ 0xb0c6e0] frame I:3 Avg QP:16.46 size: 3927 [libx264 @ 0xb0c6e0] frame P:102 Avg QP:22.91 size: 3884 [libx264 @ 0xb0c6e0] frame B:143 Avg QP:27.16 size: 116 [libx264 @ 0xb0c6e0] consecutive B-frames: 18.1% 8.9% 18.1% 54.8% [libx264 @ 0xb0c6e0] mb I I16..4: 56.3% 42.7% 1.0% [libx264 @ 0xb0c6e0] mb P I16..4: 6.1% 9.9% 0.6% P16..4: 33.2% 4.9% 2.2% 0.0% 0.0% skip:43.1% [libx264 @ 0xb0c6e0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 6.7% 0.0% 0.0% direct: 0.1% skip:93.2% L0:53.5% L1:45.4% BI: 1.2% [libx264 @ 0xb0c6e0] 8x8 transform intra:57.0% inter:85.5% [libx264 @ 0xb0c6e0] coded y,uvDC,uvAC intra: 36.0% 71.6% 24.9% inter: 4.4% 11.6% 0.6% [libx264 @ 0xb0c6e0] i16 v,h,dc,p: 35% 21% 10% 34% [libx264 @ 0xb0c6e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 22% 34% 3% 3% 4% 2% 4% 5% [libx264 @ 0xb0c6e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 19% 11% 4% 12% 12% 7% 5% 6% [libx264 @ 0xb0c6e0] i8c dc,h,v,p: 49% 22% 22% 7% [libx264 @ 0xb0c6e0] Weighted P-Frames: Y:2.9% UV:2.0% [libx264 @ 0xb0c6e0] ref P L0: 79.5% 8.1% 9.8% 2.5% 0.0% [libx264 @ 0xb0c6e0] ref B L0: 91.9% 7.5% 0.6% [libx264 @ 0xb0c6e0] ref B L1: 94.8% 5.2% [libx264 @ 0xb0c6e0] kb/s:684.84