Newest 'ffmpeg' Questions - Stack Overflow

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

Les articles publiés sur le site

  • How to install ffmpeg using xampp

    28 avril 2014, par Paul Ledger

    I am trying to install ffmpeg onto my localhost server. I have followed countless blogs and tutorials online form other people who are stuck with this same problem. I follow everything to the letter.

    1. Unzip the file
    2. Copy php_ffmpeg.exe to ext folder in php
    3. copy the rest to system 32

    As it says however when I do this I get this error when I start apache.

    error message

    Fair play but it is in the folder

    Here is my file

    I also get this error as well:

    Second error

    And Again, here it is: second file placement

    I have added the extention to my php.ini file

    extension=php_ffmpeg.dll

    The first time I go this to work I placed the ffmpeg.exe file onto my local host server and ran commands like this:

    $cmd = "$ffmpegpath -i $input -an -ss $sec -s $size $output";
    shell_exec($cmd);
    

    This works fine on my computer but not on an actual server. Could somebody offer some advice or guidene on where I have one wrong installing the extension or why running the .exe file on a lunix server with shell_exec doesn't work

  • Carrierwave-video "Process hung" error while encoding uncompressed video files

    28 avril 2014, par Cramps

    I have an API for a mobile app that accepts video uploads. This app is for both iOS and Android devices, so for video compatibility's sake these videos are encoded to H.264 once uploaded to the server using carrierwave-video (ffmpeg wrapper gem for Ruby on Rails). Right now this seems to be working, and videos are uploaded and encoded and can be played in both Android and iOS devices. However, sometimes the process hangs while encoding heavy (uncompressed?) video files, usually ~10+ seconds long. This is the output of ffmpeg:

    Failed to transcode with FFmpeg.
    Check ffmpeg install and verify video is not corrupt or cut short.
    Original error: Process hung. Full output: 
    

    (That's it, the full output seems empty.)

    These are the encoding parameters I'm using in my Carrierwave Uploader:

    encode_video(:mp4, custom: '-y -vcodec libx264 -acodec libfaac -vpre ultrafast 2> /home/user/log/ffmpeg.log, resolution: '640x640')
    

    According to the SuperUser question I linked above a solution would be to encode the video twice, once to AVI for compression(?) and then encode to MP4. I don't know if that would work, but I don't know how to do this either in my uploader. I would have to encode the output video file of my first (AVI) encoding process.

    Now that there's some context, my question is: How can I solve this "Process hung" error?

    In case the answer to that is to go with this double encoding method suggested, how can I achieve this using Carrierwave-video?

    One last note is that if I try to encode these videos using ffmpeg straight from command-line the videos encode and playback successfully.

    Thank you for your time!

    PD: Wasn't sure if I should add ruby-on-rails tag. I'll remove it if necessary!

    Edit This is what I get from ffmpeg -i filename.mp4

    ffmpeg version 0.10.3 Copyright (c) 2000-2012 the FFmpeg developers
      built on Apr 30 2013 11:26:53 with gcc 4.5.4
      configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-O2 -march=athlon64 -pipe' --extra-cflags='-O2 -march=athlon64 -pipe' --extra-cxxflags='-O2 -march=athlon64 -pipe' --disable-static --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --disable-stripping --disable-debug --disable-doc --disable-vaapi --disable-vdpau --disable-ffplay --enable-openssl --enable-nonfree --enable-libmp3lame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libaacplus --enable-nonfree --enable-libfaac --enable-nonfree --disable-indev=v4l --disable-indev=v4l2 --disable-indev=alsa --disable-indev=oss --disable-indev=jack --disable-outdev=alsa --disable-outdev=oss --disable-outdev=sdl --enable-pthreads --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libvpx --enable-libope  libavutil      51. 35.100 / 51. 35.100
      libavcodec     53. 61.100 / 53. 61.100
      libavformat    53. 32.100 / 53. 32.100
      libavdevice    53.  4.100 / 53.  4.100
      libavfilter     2. 61.100 /  2. 61.100
      libswscale      2.  1.100 /  2.  1.100
      libswresample   0.  6.100 /  0.  6.100
      libpostproc    52.  0.100 / 52.  0.100
    
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/user/api/uploads/tmp/e54zfghzt9.mp4':
    
    
    Metadata:
        major_brand     : isom
        minor_version   : 0
        compatible_brands: isom3gp4
        creation_time   : 2014-04-23 14:56:19
      Duration: 00:00:14.27, start: 0.000000, bitrate: 20757 kb/s
        Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 20993 kb/s, SAR 65536:65536 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc
    
    
    Metadata:
          creation_time   : 2014-04-23 14:56:19
          handler_name    : VideoHandle
        Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 190 kb/s
    
    
    Metadata:
          creation_time   : 2014-04-23 14:56:19
          handler_name    : SoundHandle
    

    Then it just starts buffering as such:

    time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  405 fps=  7 q=24.0 size=    4083kB time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  407 fps=  7 q=24.0 size=    4083kB time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  409 fps=  7 q=24.0 size=    4083kB time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  412 fps=  7 q=24.0 size=    4083kB time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  417 fps=  7 q=24.0 size=    4083kB time=00:00:13.20 bitrate=2533.2kbits/s    
    frame=  417 fps=  7 q=24.0 Lsize=    4194kB time=00:00:13.90 bitrate=2471.5kbits/s    
    video:3957kB audio:223kB global headers:0kB muxing overhead 0.310939%
    [libx264 @ 0x7f28327ccc50] frame I:2     Avg QP:21.50  size: 25120
    [libx264 @ 0x7f28327ccc50] frame P:415   Avg QP:25.32  size:  9642
    [libx264 @ 0x7f28327ccc50] mb I  I16..4: 35.8%  0.0% 64.2%
    [libx264 @ 0x7f28327ccc50] mb P  I16..4:  8.4%  0.0%  3.2%  P16..4: 43.6% 19.0%  5.6%  0.0%  0.0%    skip:20.2%
    [libx264 @ 0x7f28327ccc50] coded y,uvDC,uvAC intra: 45.2% 53.6% 27.3% inter: 39.4% 27.6% 2.7%
    [libx264 @ 0x7f28327ccc50] i16 v,h,dc,p: 28% 57% 11%  5%
    [libx264 @ 0x7f28327ccc50] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 66% 11%  1%  1%  1%  2%  1%  2%
    [libx264 @ 0x7f28327ccc50] i8c dc,h,v,p: 23% 58% 17%  3%
    [libx264 @ 0x7f28327ccc50] kb/s:2331.88
    

    `

  • How to play RTMP video by using LibRTMP, not FFmpeg ?

    28 avril 2014, par Smeegol Xie

    I want to play RTMP video by using LibRTMP not FFmpeg, because FFmpeg build is so big and LibRTMP just can play RTMP stream. The color encoding is YUV420P, my solution is to draw images frame by frame.

    So the Question is HOW to convert YUB420P to RGB and play RTMP video?

  • How to play RTMP video by using libRTMP and SDL ?

    27 avril 2014, par Smeegol Xie

    I want to play RTMP video. The RTMP stream is encoded by flv1 and speex. My solution is to use libRTMP to decode vedio and SDL to draw video image frame by frame, use Speex to decode audio and Audio Queue Services to play audio. First my question is whether is it a perfect solution?

    Now I have already completed the audio decoding and playing work. How do I decode video and play it by using SDL? The color encoding is YUV420, it's easy to convert YUV420 to RGB.My question is how to play RTMP video by using libRTMP and SDL? Can somebody tell me HOW?

  • Android square video record with post proccessing

    27 avril 2014, par bakua

    I to allow users in my app to record video and then post process it. Basically all I need is to video to be square (low res, something about 400x400) and when recording is done then allow user to modify brightness/contrast.

    I did some research on that and found ffmpeg library which can do that. But I'm not sure if I am ok with its licensing. When I use ffmpeg do I have to release my app sources as well? My app will be free to download and use but I am not comfortable with its releasing sources.

    Also about that square recording - as I am supporting API 14, android doesn't let me adjust resolution directly. There are 2 ways I think of:

    1. Record video file in 640x480, then resize/crop and after that allow user to do post processing. - totally need ffmpeg for that
    2. Capture CameraPreviewFrames - crop them as they go and render them into mp4 video, and after video is rendered then allow user to post process it further - need ffmpeg for that as well.

    My question is then - may I use ffmpeg without any worries about licensing etc? Or is there any other library which allows me to do above and is open to use?

    Thanks very much