Newest 'ffmpeg' Questions - Stack Overflow

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

Les articles publiés sur le site

  • ffmpeg apply filters without rencoding ?

    19 octobre 2013, par nbubis

    I want to rotate a video using ffmpeg, but I don't want to lose quality by re-encoding.

    If I try

    ffmpeg -i in.mp4 -vf 'vflip,hflip' -ss 120 -t 200 -c:v copy -c:a copy out.mp4
    

    No rotation gets preformed. If I instead specify the encoding by using, say -c:v h264, I'm afraid I'll lose some quality. Is there a "losssless" (relative to the original encoding) way of applying a filter?

  • FFMPEG : Change Video during encoding (using mapping)

    18 octobre 2013, par Tchoupi

    I'm currently trying to concat several videos using a complex filter:

    ffmpeg.exe -threads 8 -i "D:\Temporary0.mp4"  -i "D:\Temporary1.mp4"  -i "D:\Temporary2.mp4"  -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a]  concat=n=3:v=1:a=1 [v] [a] " -map "[v]" -map "[a]"  -vcodec libx264 -b 2500000 -s 1920:1080 -y D:\EditedVideo.mp4
    

    This command work fine. Edit: Here the output of the command:

    ffmpeg version N-56297-g7ac6c63 Copyright (c) 2000-2013 the FFmpeg developers
      built on Sep 15 2013 18:02:28 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-libblu
    ray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-li
    bvorbis --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 'D:\Temporary0.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf55.16.102
      Duration: 00:00:02.91, start: 0.033333, bitrate: 8998 kb/s
        Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 8965 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
        Metadata:
          handler_name    : VideoHandler
        Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Temporary1.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf55.16.102
      Duration: 00:00:05.00, start: 0.023220, bitrate: 846 kb/s
        Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 835 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
        Metadata:
          handler_name    : VideoHandler
        Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 1 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Temporary2.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf55.16.102
      Duration: 00:00:04.35, start: 0.033333, bitrate: 4684 kb/s
        Stream #2:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 4581 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
        Metadata:
          handler_name    : VideoHandler
        Stream #2:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
    Please use -b:a or -b:v, -b is ambiguous
    [libx264 @ 04f617e0] using SAR=1/1
    [libx264 @ 04f617e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 04f617e0] profile High, level 4.0
    [libx264 @ 04f617e0] 264 - core 135 r2345 f0c1c53 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subm
    e=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=12 lookahead_threads=2 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 r
    c=abr mbtree=1 bitrate=2500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'D:\EditedVideo.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf55.16.102
        Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 2500 kb/s, 12800 tbn, 25 tbc
        Stream #0:1: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s
    Stream mapping:
      Stream #0:0 (h264) -> concat:in0:v0
      Stream #0:1 (aac) -> concat:in0:a0
      Stream #1:0 (h264) -> concat:in1:v0
      Stream #1:1 (aac) -> concat:in1:a0
      Stream #2:0 (h264) -> concat:in2:v0
      Stream #2:1 (aac) -> concat:in2:a0
      concat:out:v0 -> Stream #0:0 (libx264)
      concat:out:a0 -> Stream #0:1 (libvo_aacenc)
    Press [q] to stop, [?] for help
    frame=  306 fps= 43 q=-1.0 Lsize=    3557kB time=00:00:12.29 bitrate=2369.4kbits/s dup=1 drop=0
    video:3353kB audio:193kB subtitle:0 global headers:0kB muxing overhead 0.288541%
    [libx264 @ 04f617e0] frame I:3     Avg QP:21.78  size:173526
    [libx264 @ 04f617e0] frame P:112   Avg QP:25.76  size: 17363
    [libx264 @ 04f617e0] frame B:191   Avg QP:31.04  size:  5068
    [libx264 @ 04f617e0] consecutive B-frames: 11.8% 14.4%  2.0% 71.9%
    [libx264 @ 04f617e0] mb I  I16..4: 14.6% 82.7%  2.6%
    [libx264 @ 04f617e0] mb P  I16..4:  3.5%  8.8%  0.2%  P16..4: 30.1%  5.3%  2.6%  0.0%  0.0%    skip:49.4%
    [libx264 @ 04f617e0] mb B  I16..4:  0.7%  1.1%  0.0%  B16..8: 21.6%  1.2%  0.1%  direct: 1.2%  skip:74.1%  L0:47.0% L1:50.6% BI: 2.4%
    [libx264 @ 04f617e0] final ratefactor: 25.69
    [libx264 @ 04f617e0] 8x8 transform intra:70.8% inter:88.5%
    [libx264 @ 04f617e0] coded y,uvDC,uvAC intra: 34.3% 50.2% 7.2% inter: 7.3% 13.3% 0.3%
    [libx264 @ 04f617e0] i16 v,h,dc,p: 22% 33%  7% 37%
    [libx264 @ 04f617e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 22% 34%  4%  5%  4%  5%  4%  5%
    [libx264 @ 04f617e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 22% 18%  5%  6%  6%  5%  6%  4%
    [libx264 @ 04f617e0] i8c dc,h,v,p: 60% 21% 16%  3%
    [libx264 @ 04f617e0] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 04f617e0] ref P L0: 62.6%  9.1% 19.8%  8.5%
    [libx264 @ 04f617e0] ref B L0: 85.3% 12.6%  2.1%
    [libx264 @ 04f617e0] ref B L1: 92.4%  7.6%
    [libx264 @ 04f617e0] kb/s:2243.97
    [libvo_aacenc @ 0420e900] 1 frames left in the queue on closing
    

    I would like to update this command to change volume during concat and encode time:

    ffmpeg.exe -threads 8 -i "D:\Temporary0.mp4"  -i "D:\Temporary1.mp4"  -i "D:\Temporary2.mp4"  -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a]  concat=n=3:v=1:a=1 [v] [a] " -map "[v]" -map "[a]"  -vcodec libx264 -b 2500000 -s 1920:1080 -af volume="volume=20dB:precision=double" -y D:\EditedVideo.mp4
    

    This command is executed but the audio stream is not altered with the +20db

    PS: If I do a simple encoding command like

    ffmpeg.exe -i source -vcodec libx264 -af volume="volume=20dB:precision=double" -y output
    

    Command work fine and audio stream is modified.

    So How can I Do to concat my videos and change audio volume at the same time ?

    Thanks

  • ffmpegthumbnailer issue : dyld : Library not loaded : /usr/local/lib/libavutil.52.18.100.dylib

    18 octobre 2013, par scientiffic

    When I try to run ffmpegthumbnailer, I get the following error:

    dyld: Library not loaded: /usr/local/lib/libavutil.52.18.100.dylib
      Referenced from: /usr/local/bin/ffmpegthumbnailer
      Reason: image not found
      Trace/BPT trap: 5
    

    I installed ffmpeg using the directions here:

    http://ffmpeg.org/trac/ffmpeg/wiki/MacOSXCompilationGuide

    In my /usr/local/lib folder, I have the file "libavutil.a", but not the one specified in the error mesage.

    How can I solve this error?

    This is what I was using to try to generate a thumbnail:

    ffmpegthumbnailer -i /public/uploads/tmp/1382121359-37490-7826/thumb_Untitled.mov -o /public/uploads/tmp/1382121359-37490-7826/tmpfile.png -c png -q 10 -s 158
    
  • Simple ffmpeg cutting of videos and storing in specific location

    18 octobre 2013, par Akash Deshpande

    How to cut a small segment from a video in ffmpeg

    ffmpeg.exe -i F:\\Ims\\144\\TestRun\\12907\\144151__cam144__10-10-2013 8.32.36 PM__10-10-2013 8.52.55 PM.avi -ss 00:00:01 -t 00:01:00 -vcodec -acodec -o F:\\IMS_Analysis\\cam144_0.avi
    

    Gives an error that the option "-o" is not know. How do I ask ffmpeg create the output file called cam144_o.avi? what is the switch for this ?

  • How do you set muxer options in libavformat ?

    18 octobre 2013, par dicroce

    I'm trying to use the libavformat muxer "hlsenc.c".... Looking through the code of the muxers, it looks like muxers support paramaters via the AVOption mechanism... For example, the hlsenc.c muxer supports an AVOption parameter called "hls_time"...

    I'm using av_guess_format("hls",NULL,NULL) to find the appropriate output format, but how do you set these options?

    (it seems like all the samples on the internet are setting options on a codec... I want to set options on a muxer).