Newest 'ffmpeg' Questions - Stack Overflow

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

Les articles publiés sur le site

  • Create 1080p videos with javacv and ffmpeg or alternate lib

    20 novembre 2012, par 501 - not implemented

    is there a option in JavaCV to capture 1080p videos from images? If i use the FFmpegFrameRecorde, i only find 480p.

    Or is there a alternate library for Java? I want to use it to create a video from kind of pictures (with zooming and rotating effects)

    greetings

    //EDIT

    Okay, now i've tested a very simple code:

        FrameRecorder  recorder = FFmpegFrameRecorder.createDefault("out.avi", 1920, 1080);
        recorder.start();
        recorder.record(iplImage);
        recorder.stop();
    

    and it's works! But the file is very large (10sec around 300MB...)

    Now i want to add a codec like xvid. I've get the following eyxception:

    com.googlecode.javacv.FrameRecorder$Exception: codec not found
    

    But i've installed the xvid paket. Must i add the codec in a special folder like the ffmpeg bin?

  • Playing videos using HTML5 Tag

    20 novembre 2012, par Haja Mohaideen

    I am creating a website where videos need to be streamed. The content creator uploads .mov file to the server. Upon uploading, I convert to the following formats using FFMPEG, .mp4, .webm, and .ogg.

    I am now trying to allow the video to be viewed from multiple browsers and handheld devices. The code is as follow:

    
    
    <script> 
    var video = document.getElementById(&#39;video&#39;);
    video.addEventListener(&#39;click&#39;,function(){
    video.play();
    },false);
    </script>
    <script type="text/javascript" src="http://stackoverflow.com/feeds/tag/jwplayer.js"></script> <script type="text/javascript">
    jwplayer("video").setup({
    modes: [
    { type: &#39;html5&#39; },
    { type: &#39;flash&#39;, src: &#39;player.swf&#39; }
    ]
    });
    </script>

    The video works on all browsers. But, it is refusing to play on Android. When I click the play button, it shows as loading only.

    I am testing on 4.0.3.

    FFMPEG conversion codes:

    webm

    exec("ffmpeg -y -i file.mov -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 output.webm", $command_output, $result);
    

    ogg

    exec("ffmpeg -y -i file.mov -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 output.ogv", $command_output, $result);
    

    flv

    exec("ffmpeg -y -i file.mov -ar 44100 -ab 96 -f flv output.flv", $command_output, $result);
    

    For MP4:

        sudo ffmpeg -i file.mov -s 320x240 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -preset slow -acodec aac -strict experimental -ac 2 -r 15 -ab 44100 -aspect 16:9 output.mp4
    ffmpeg version git-2012-10-11-492b8ec Copyright (c) 2000-2012 the FFmpeg developers
      built on Oct 11 2012 19:59:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
      configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
      libavutil      51. 74.100 / 51. 74.100
      libavcodec     54. 65.100 / 54. 65.100
      libavformat    54. 31.100 / 54. 31.100
      libavdevice    54.  3.100 / 54.  3.100
      libavfilter     3. 19.102 /  3. 19.102
      libswscale      2.  1.101 /  2.  1.101
      libswresample   0. 16.100 /  0. 16.100
      libpostproc    52.  1.100 / 52.  1.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x23f3220] Stream #1: not enough frames to estimate rate; consider increasing probesize
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x23f3220] Stream #2: not enough frames to estimate rate; consider increasing probesize
    Guessed Channel Layout for  Input Stream #0.1 : stereo
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mov':
      Metadata:
        major_brand     : qt  
        minor_version   : 537199360
        compatible_brands: qt  
        creation_time   : 2012-09-07 11:10:10
      Duration: 00:01:41.83, start: 0.000000, bitrate: 186917 kb/s
        Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), rgb24, 1920x1080, 185371 kb/s, SAR 1920:1920 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc
        Metadata:
          creation_time   : 2012-09-07 11:10:10
          handler_name    : Apple Alias Data Handler
          timecode        : 00:00:00;03
        Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
        Metadata:
          creation_time   : 2012-09-07 11:10:10
          handler_name    : Apple Alias Data Handler
          timecode        : 00:00:00;03
        Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
        Metadata:
          creation_time   : 2012-09-07 11:31:37
          handler_name    : Apple Alias Data Handler
          timecode        : 00:00:00;03
    File 'output.mp4' already exists. Overwrite ? [y/N] y
    using SAR=4/3
    [libx264 @ 0x240bf60] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
    [libx264 @ 0x240bf60] profile Constrained Baseline, level 1.2
    [libx264 @ 0x240bf60] 264 - core 128 r2 198a7ea - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=50 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 'output.mp4':
      Metadata:
        major_brand     : qt  
        minor_version   : 537199360
        compatible_brands: qt  
        encoder         : Lavf54.31.100
        Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 320x240 [SAR 4:3 DAR 16:9], q=-1--1, 15360 tbn, 15 tbc
        Metadata:
          creation_time   : 2012-09-07 11:10:10
          handler_name    : Apple Alias Data Handler
          timecode        : 00:00:00;03
        Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 44 kb/s
        Metadata:
          creation_time   : 2012-09-07 11:10:10
          handler_name    : Apple Alias Data Handler
          timecode        : 00:00:00;03
    Stream mapping:
      Stream #0:0 -> #0:0 (qtrle -> libx264)
      Stream #0:1 -> #0:1 (pcm_s16le -> aac)
    Press [q] to stop, [?] for help
    frame=   25 fps=0.0 q=0.0 size=       0kB time=00:00:01.32 bitrate=   0.frame=   47 fps= 47 q=0.0 size=       0kB time=00:00:02.68 bitrate=   0.frame=   67 fps= 44 q=27.0 size=      12kB time=00:00:04.05 bitrate=  23frame=   88 fps= 44 q=27.0 size=      23kB time=00:00:05.41 bitrate=  34frame=  108 fps= 43 q=27.0 size=      35kB time=00:00:06.78 bitrate=  42frame=  128 fps= 42 q=27.0 size=      47kB time=00:00:08.14 bitrate=  47frame=  150 fps= 43 q=27.0 size=      64kB time=00:00:09.51 bitrate=  54frame=  172 fps= 43 q=27.0 size=      81kB time=00:00:10.88 bitrate=  61frame=  193 fps= 43 q=27.0 size=     106kB time=00:00:12.24 bitrate=  70frame=  214 fps= 42 q=27.0 size=     119kB time=00:00:13.61 bitrate=  71frame=  235 fps= 42 q=27.0 size=     127kB time=00:00:14.97 bitrate=  69frame=  254 fps= 42 q=27.0 size=     144kB time=00:00:16.34 bitrate=  72frame=  272 fps= 41 q=27.0 size=     157kB time=00:00:17.70 bitrate=  72frame=  289 fps= 41 q=27.0 size=     174kB time=00:00:19.07 bitrate=  74frame=  309 fps= 41 q=27.0 size=     183kB time=00:00:20.28 bitrate=  73frame=  329 fps= 41 q=27.0 size=     191kB time=00:00:20.77 bitrate=  75frame=  349 fps= 41 q=27.0 size=     200kB time=00:00:22.08 bitrate=  74frame=  369 fps= 41 q=27.0 size=     215kB time=00:00:23.38 bitrate=  75frame=  389 fps= 41 q=27.0 size=     225kB time=00:00:24.72 bitrate=  74frame=  408 fps= 40 q=27.0 size=     235kB time=00:00:26.02 bitrate=  74frame=  428 fps= 40 q=27.0 size=     247kB time=00:00:27.32 bitrate=  73frame=  448 fps= 40 q=27.0 size=     256kB time=00:00:28.65 bitrate=  73frame=  468 fps= 40 q=27.0 size=     264kB time=00:00:30.01 bitrate=  72frame=  489 fps= 40 q=27.0 size=     273kB time=00:00:31.38 bitrate=  71frame=  507 fps= 40 q=27.0 size=     299kB time=00:00:32.72 bitrate=  74frame=  527 fps= 40 q=27.0 size=     317kB time=00:00:34.09 bitrate=  76frame=  547 fps= 40 q=27.0 size=     336kB time=00:00:35.45 bitrate=  77frame=  565 fps= 40 q=27.0 size=     344kB time=00:00:36.82 bitrate=  76frame=  586 fps= 40 q=27.0 size=     352kB time=00:00:38.18 bitrate=  75frame=  607 fps= 40 q=27.0 size=     361kB time=00:00:39.55 bitrate=  74frame=  627 fps= 40 q=27.0 size=     370kB time=00:00:40.91 bitrate=  74frame=  647 fps= 40 q=27.0 size=     384kB time=00:00:42.28 bitrate=  74frame=  665 fps= 40 q=27.0 size=     408kB time=00:00:43.64 bitrate=  76frame=  684 fps= 40 q=27.0 size=     418kB time=00:00:45.01 bitrate=  76frame=  704 fps= 40 q=27.0 size=     427kB time=00:00:46.37 bitrate=  75frame=  721 fps= 40 q=27.0 size=     453kB time=00:00:47.74 bitrate=  77frame=  741 fps= 40 q=27.0 size=     463kB time=00:00:49.10 bitrate=  77frame=  761 fps= 40 q=27.0 size=     472kB time=00:00:50.47 bitrate=  76frame=  784 fps= 40 q=27.0 size=     481kB time=00:00:51.84 bitrate=  76frame=  804 fps= 40 q=27.0 size=     498kB time=00:00:53.20 bitrate=  76frame=  822 fps= 40 q=27.0 size=     518kB time=00:00:54.57 bitrate=  77frame=  843 fps= 40 q=27.0 size=     529kB time=00:00:55.93 bitrate=  77frame=  862 fps= 40 q=27.0 size=     547kB time=00:00:57.30 bitrate=  78frame=  882 fps= 40 q=27.0 size=     558kB time=00:00:58.13 bitrate=  78frame=  903 fps= 40 q=27.0 size=     568kB time=00:00:58.98 bitrate=  78frame=  923 fps= 40 q=27.0 size=     578kB time=00:01:00.35 bitrate=  78frame=  943 fps= 40 q=27.0 size=     588kB time=00:01:01.67 bitrate=  78frame=  964 fps= 40 q=27.0 size=     598kB time=00:01:03.06 bitrate=  77frame=  984 fps= 40 q=27.0 size=     607kB time=00:01:04.42 bitrate=  77frame= 1004 fps= 40 q=27.0 size=     626kB time=00:01:05.72 bitrate=  78frame= 1026 fps= 40 q=27.0 size=     638kB time=00:01:07.20 bitrate=  77frame= 1047 fps= 40 q=27.0 size=     655kB time=00:01:09.58 bitrate=  77frame= 1069 fps= 40 q=27.0 size=     670kB time=00:01:10.95 bitrate=  77frame= 1089 fps= 40 q=27.0 size=     691kB time=00:01:12.32 bitrate=  78frame= 1108 fps= 40 q=27.0 size=     710kB time=00:01:12.64 bitrate=  80frame= 1126 fps= 40 q=27.0 size=     731kB time=00:01:13.85 bitrate=  81frame= 1142 fps= 40 q=27.0 size=     759kB time=00:01:15.05 bitrate=  82frame= 1157 fps= 39 q=27.0 size=     787kB time=00:01:16.41 bitrate=  84frame= 1174 fps= 39 q=27.0 size=     796kB time=00:01:17.78 bitrate=  83frame= 1192 fps= 39 q=27.0 size=     806kB time=00:01:19.14 bitrate=  83frame= 1209 fps= 39 q=27.0 size=     821kB time=00:01:19.38 bitrate=  84frame= 1227 fps= 39 q=27.0 size=     831kB time=00:01:20.59 bitrate=  84frame= 1248 fps= 39 q=27.0 size=     840kB time=00:01:21.96 bitrate=  84frame= 1267 fps= 39 q=27.0 size=     848kB time=00:01:23.24 bitrate=  83frame= 1289 fps= 39 q=27.0 size=     857kB time=00:01:24.73 bitrate=  82frame= 1309 fps= 39 q=24.0 size=     877kB time=00:01:26.03 bitrate=  83frame= 1329 fps= 39 q=27.0 size=     892kB time=00:01:27.40 bitrate=  83frame= 1351 fps= 39 q=27.0 size=     901kB time=00:01:28.85 bitrate=  83frame= 1372 fps= 39 q=27.0 size=     912kB time=00:01:30.28 bitrate=  82frame= 1394 fps= 39 q=27.0 size=     925kB time=00:01:32.52 bitrate=  81frame= 1418 fps= 39 q=27.0 size=     936kB time=00:01:34.16 bitrate=  81frame= 1441 fps= 40 q=27.0 size=     947kB time=00:01:35.53 bitrate=  81frame= 1464 fps= 40 q=27.0 size=     957kB time=00:01:36.89 bitrate=  80frame= 1488 fps= 40 q=27.0 size=     969kB time=00:01:38.26 bitrate=  80frame= 1509 fps= 40 q=27.0 size=     981kB time=00:01:39.62 bitrate=  80frame= 1526 fps= 40 q=27.0 size=     993kB time=00:01:41.90 bitrate=  79frame= 1530 fps= 40 q=27.0 Lsize=    1038kB time=00:01:42.00 bitrate=  83.4kbits/s dup=0 drop=1522    
    video:406kB audio:590kB subtitle:0 global headers:0kB muxing overhead 4.258083%
    [libx264 @ 0x240bf60] frame I:15    Avg QP:16.30  size:  2928
    [libx264 @ 0x240bf60] frame P:1515  Avg QP:22.12  size:   245
    [libx264 @ 0x240bf60] mb I  I16..4: 72.9%  0.0% 27.1%
    [libx264 @ 0x240bf60] mb P  I16..4:  3.9%  0.0%  0.7%  P16..4:  3.2%  1.1%  0.5%  0.0%  0.0%    skip:90.5%
    [libx264 @ 0x240bf60] coded y,uvDC,uvAC intra: 12.1% 38.2% 14.8% inter: 1.2% 2.7% 0.9%
    [libx264 @ 0x240bf60] i16 v,h,dc,p: 29% 23%  4% 44%
    [libx264 @ 0x240bf60] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 30%  6%  8%  8%  5%  6%  3%
    [libx264 @ 0x240bf60] i8c dc,h,v,p: 50% 27% 18%  5%
    [libx264 @ 0x240bf60] ref P L0: 80.0%  8.9%  6.1%  2.7%  2.3%
    [libx264 @ 0x240bf60] kb/s:32.58
    

    I decided to remote debug to see what is happening. I realised that the video status is pending.

    Debug

  • Encoding video on H.263 to send over RTP

    20 novembre 2012, par Miguel Brito

    I'm developing an application to send video over RTP to a client that can play only H.263 (1996) and H263+ (1998).

    To do this i've encoded the video using libav following these steps: (this is only part of the code)

    av_register_all();
    avformat_network_init();
    Fmt = av_guess_format("rtp", NULL, NULL);
    ...
    st = add_video_stream(FmtCtx, CODEC_ID_H263);
    ...
    avio_open(&FmtCtx->pb, rtp_url, URL_WRONLY)
    

    To finally enter a loop where i encode the video, the problem is that the stream generated by this program is encoded in H.263-2000 (or H.263++) which the other side cannot undertand, even though i use CODEC_ID_H263 or CODEC_ID_H263P in the initialization the same thing happens.

    Is it possible to encode in those old H.263 versions using libav? i havent managed to do it not even using ffmpeg commands. The stream is always h.263-2000 (PT=96)

  • Android RTSP streaming buffer size for delayed playback

    19 novembre 2012, par frijj2k

    I can access and view RTSP streams from IP cameras on Android via the VideoView component without problems.

    Now I need to play the RTSP stream with a delay (i.e. if I specify a 30 second delay, the playback on screen should be 30 seconds behind the source and the delay needs to be variable though not during playback, only at the point of connecting to the source).

    I originally thought this would not be a problem as I could simply change the RTSP buffer duration before connecting to the camera but unfortunately it seems the buffer size is baked into the firmware and cannot be changed in software. Now I have got a horrible feeling that my way forward will be to compile a version of FFMpeg for Android and somehow get the stream data out from the library, buffer it and then render it myself and I have no experience with FFMpeg.

    I am unsure how I would now go about solving this problem and any help or pointers in the right direction would be greatly appreciated.

    Update:

    Sorry I forgot to mention, the RTSP stream is being accessed over WiFi on a LAN so no huge latency issues here from going over the Internet.

  • Getting message -> Invalid data found when processing input

    19 novembre 2012, par user1726619

    I want to use ffmpeg lib in my library.For that purpose,i have successfully compiled it.But when i try to execute any command,i am getting this message:

    Invalid data found when processing input.
    

    I don't know whats the reason behind it.This is the code:

    public class Videokit extends Activity {
        String FilePath;
        String OutPut;
        Context mycontext;
        Videokit vk ;
        static 
        {
            System.loadLibrary("videokit");
        }
    
        public native void run(String[] args);
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            FilePath =Environment.getExternalStorageDirectory().toString()+"/output.3gp";
            try {
                ffmpegrun();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public String ffmpegrun() throws IOException
        {
            boolean success=false;
            File folder = new File(Environment.getExternalStorageDirectory().toString() + "/image-%3d.jpeg");
            File file = new File(FilePath);
            System.out.println("filepath exists at:"+file.getAbsolutePath());
            if (!folder.exists()) {
                success = folder.mkdirs();
    //              Toast.makeText(mycontext,"outfile.mp4 exists at"+folder.getAbsolutePath(),Toast.LENGTH_LONG).show();
                 OutPut = folder.getAbsolutePath();
            }
            System.out.println("outfile.flv exists at:"+folder.getAbsolutePath());
            run(new String[]{
                    "ffmpeg",
                    "-i",
                    FilePath,
                    "-r 1", 
                     "-f",
                     "image2",
                     "image-%3d.jpeg"
            }); 
            return OutPut;
        }
    }
    

    This is the log :

    10-07 17:00:03.707: D/dalvikvm(8760): Trying to load lib /data/data/uk.co.halfninja.videokit/lib/libvideokit.so 0x44e8c958
    10-07 17:00:03.837: D/dalvikvm(8760): Added shared lib /data/data/uk.co.halfninja.videokit/lib/libvideokit.so 0x44e8c958
    10-07 17:00:03.837: I/Videokit(8760): Loading native library compiled at 13:52:27 Oct  7 2012
    10-07 17:00:03.917: I/System.out(8760): filepath exists at:/sdcard/output.3gp
    10-07 17:00:03.917: I/System.out(8760): outfile.flv exists at:/sdcard/image-%3d.jpeg
    10-07 17:00:03.917: D/dalvikvm(8760): +++ not scanning '/system/lib/libwebcore.so' for 'run' (wrong CL)
    10-07 17:00:03.917: D/dalvikvm(8760): +++ not scanning '/system/lib/libmedia_jni.so' for 'run' (wrong CL)
    10-07 17:00:03.928: D/dalvikvm(8760): +++ not scanning '/system/lib/libexif.so' for 'run' (wrong CL)
    10-07 17:00:03.928: D/Videokit(8760): run() called
    10-07 17:00:03.928: D/Videokit(8760): run passing off to main()
    10-07 17:00:03.928: D/Videokit(8760): main(): registering all modules
    10-07 17:00:03.938: D/Videokit(8760): main(): registered everything
    10-07 17:00:03.938: D/Videokit(8760): main(): initting opts
    10-07 17:00:03.968: D/Videokit(8760): main(): initted opts.
    10-07 17:00:03.968: E/Videokit(8760): ffmpeg version N-30996-gf925b24, Copyright (c) 2000-2011 the FFmpeg developers
    10-07 17:00:03.979: E/Videokit(8760):   built on Oct  7 2012 13:52:32 with gcc 4.4.3
    10-07 17:00:03.979: E/Videokit(8760):   configuration: --enable-cross-compile --arch=arm5te --enable-armv5te --target-os=linux --disable-stripping --prefix=../output --disable-neon --enable-version3 --disable-shared --enable-static --enable-gpl --enable-memalign-hack --cc=arm-linux-androideabi-gcc --ld=arm-linux-androideabi-ld --extra-cflags='-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated' --disable-everything --enable-decoder=mjpeg --enable-demuxer=mjpeg --enable-parser=mjpeg --enable-demuxer=image2 --enable-muxer=mp4 --enable-encoder=libx264 --enable-libx264 --enable-decoder=rawvideo --enable-protocol=file --enable-hwaccels --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-filter=buffer --enable-filter=buffersink --disable-demuxer=v4l --disable-demuxer=v4l2 --disable-indev=v4l --disable-indev=v4l2 --extra-cflags='-I../x264 -Ivideokit' --extra-ldflags=-L../x264
    10-07 17:00:03.987: D/Videokit(8760): main(): parsing options
    10-07 17:00:03.987: D/Videokit(8760): parse_options has 7 options to parse
    10-07 17:00:04.050: E/Videokit(8760): /sdcard/output.3gp: Invalid data found when processing input
    10-07 17:00:04.050: E/Videokit(8760): ffmpeg_exit(1) called!
    

    Please help me.I am clueless about this problem.Thanks in advance.