Newest 'ffmpeg' Questions - Stack Overflow

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

Les articles publiés sur le site

  • switch between video streaming

    5 décembre 2012, par user1225084

    I 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 charles

    I 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 Cehm

    I'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 the avcodec_decode_video2(...) function I'm just writing pFrame 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 RogerWilgo

    I 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 brux

    I 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