Newest 'ffmpeg' Questions - Stack Overflow

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

Les articles publiés sur le site

  • JAVA : how to concat 2 videos ? (1 with no audio tracks, 1 with 2 audio tracks) using FFmpeg ? [on hold]

    22 décembre 2018, par SomeoneInNeedOfHelp

    ffmpeg -i NoAudio.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts

    ffmpeg -i 2Audio.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts

    ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4

    My output.mp4 ends up with only 1 Audio. What am I missing?

  • Ffmpeg - multi overlay - where is the mistake ?

    22 décembre 2018, par georgmann

    Four videos should be evenly spread over the entire area. I am trying to use this code, and I cannot find an error. Size of the logo.png file 1920x1080.

    ffmpeg -loop 1 -i logo.png -i 01.mp4 -i 02.mp4 -i 03.mp4 -i 04.mp4 -filter_complex "[1:v]scale=960x540[a]; [2:v]scale=960x540[b]; [3:v]scale=960x540[c]; [4:v]scale=960x540[d]; [0:v][a]overlay=0:0:shortest=1[e]; [0:v][b]overlay=960:0:shortest=1[e]; [0:v][c]overlay=540:0:shortest=1[e]; [e][d]overlay=0:960[video]" -y -ss 00:00:00 -t 00:00:05 -b 3000k -map "[video]" 05.mp4
    

    Audio track from video "01.mp4"

  • ffmpeg converting JPG slideshow to H264

    22 décembre 2018, par phol

    I am trying to convert a set of jpg files to a slideshow with varying durations using ffconcat

    output.txt contents:

    ffconcat version 1.0
    file slide_0001.jpg
    duration 0.163
    file slide_0002.jpg
    duration 0.533
    file slide_0003.jpg
    duration 1.067
    file slide_0004.jpg
    duration 0.533
    file slide_0005.jpg
    etc.
    

    FFmpeg command:

    ffmpeg -i output.txt output.mkv
    

    I also tried:

    ffmpeg -i output.txt -c:v copy output.mkv
    

    However, when converting, the colours of the images become skewed. White becomes pink / purple and dark green becomes light green. The same happens when choosing different codecs and containers. Is there a way to solve this?

    EDIT: I performed the same conversion again. I attached the log output as requested. However, in the meantime I have figured out that converting without ffconcat duration and then altering timecodes with mp4fpsmod is more efficient in terms of storage (3 vs 40 MB) and gives less issues in different players. The result is nonetheless the same: colours are still wrong, both on my workstation (Ubuntu 18.04) and laptop (macOS Mojave).

    I tried to alter things with pix_fmt and -vf format as can be seen in the second log output. This did not solve the problem.

    Background info: The input jpg files are from a lecture recording made with MediaSite, which has both a video stream for the room as well as this slideshow stream for the slides.

    Example of input: Input image Example of output: Screenshot of output log output MKV conversion:

        $ ffmpeg -i outputnew.txt output12345.mkv
    ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
    built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
    configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
    libavutil      56. 22.100 / 56. 22.100
    libavcodec     58. 35.100 / 58. 35.100
    libavformat    58. 20.100 / 58. 20.100
    libavdevice    58.  5.100 / 58.  5.100
    libavfilter     7. 40.101 /  7. 40.101
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  3.100 /  5.  3.100
    libswresample   3.  3.100 /  3.  3.100
    libpostproc    55.  3.100 / 55.  3.100
    Input #0, concat, from 'outputnew.txt':
    Duration: N/A, start: 0.000000, bitrate: N/A
        Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1280x720, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [libx264 @ 0x7fb284802800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x7fb284802800] profile High 4:4:4 Predictive, level 3.1, 4:4:4 8-bit
    [libx264 @ 0x7fb284802800] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 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=4 threads=6 lookahead_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, matroska, to 'output12345.mkv':
    Metadata:
        encoder         : Lavf58.20.100
        Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj444p(pc), 1280x720, q=-1--1, 25 fps, 1k tbn, 25 tbc
        Metadata:
        encoder         : Lavc58.35.100 libx264
        Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    [mjpeg @ 0x7fb284061200] EOI missing, emulating=00:02:12.96 bitrate= 491.3kbits/s speed=14.3x        
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 487.2kbits/s speed=14.3x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 333.0kbits/s speed=22.3x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 338.8kbits/s speed=22.7x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 164.7kbits/s speed=41.6x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 122.7kbits/s speed=55.7x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 111.2kbits/s speed=60.5x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 105.3kbits/s speed=64.4x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  82.2kbits/s speed=82.7x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  79.7kbits/s speed=85.8x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  59.7kbits/s speed= 114x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  53.8kbits/s speed= 127x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  54.7kbits/s speed= 124x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  47.1kbits/s speed= 143x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  47.0kbits/s speed= 144x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  44.6kbits/s speed= 151x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  34.4kbits/s speed= 194x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  32.9kbits/s speed= 204x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  32.8kbits/s speed= 203x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  32.6kbits/s speed= 202x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  28.8kbits/s speed= 229x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  27.9kbits/s speed= 236x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  27.9kbits/s speed= 233x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  23.9kbits/s speed= 274x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  24.2kbits/s speed= 273x    
        Last message repeated 2 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  24.2kbits/s speed= 274x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  24.0kbits/s speed= 276x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  24.2kbits/s speed= 273x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  23.6kbits/s speed= 278x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  23.7kbits/s speed= 279x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  23.6kbits/s speed= 279x    
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  24.0kbits/s speed= 276x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  23.5kbits/s speed= 281x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  20.4kbits/s speed= 325x    
    [mjpeg @ 0x7fb28502a000] EOI missing, emulating
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  20.1kbits/s speed= 329x    
        Last message repeated 1 times
    [matroska @ 0x7fb284812e00] Starting new cluster due to timestampte=  20.1kbits/s speed= 330x    
    frame=  635 fps= 14 q=-1.0 Lsize=   37389kB time=04:22:06.76 bitrate=  19.5kbits/s speed= 343x    
    video:37378kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.029620%
    [libx264 @ 0x7fb284802800] frame I:16    Avg QP:11.98  size:154224
    [libx264 @ 0x7fb284802800] frame P:184   Avg QP:13.30  size: 79029
    [libx264 @ 0x7fb284802800] frame B:435   Avg QP:13.19  size: 48887
    [libx264 @ 0x7fb284802800] consecutive B-frames:  6.0%  4.4% 10.9% 78.7%
    [libx264 @ 0x7fb284802800] mb I  I16..4: 55.7%  0.0% 44.3%
    [libx264 @ 0x7fb284802800] mb P  I16..4: 32.4%  0.0% 21.5%  P16..4: 13.3% 15.1% 11.3%  0.0%  0.0%    skip: 6.4%
    [libx264 @ 0x7fb284802800] mb B  I16..4: 17.8%  0.0%  7.2%  B16..8: 19.1% 19.4%  6.5%  direct:14.6%  skip:15.3%  L0:47.0% L1:38.9% BI:14.1%
    [libx264 @ 0x7fb284802800] coded y,u,v intra: 63.7% 26.1% 56.3% inter: 46.5% 24.6% 43.5%
    [libx264 @ 0x7fb284802800] i16 v,h,dc,p: 19% 18% 58%  4%
    [libx264 @ 0x7fb284802800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 20% 25%  4%  4%  3%  3%  3%  3%
    [libx264 @ 0x7fb284802800] Weighted P-Frames: Y:5.4% UV:5.4%
    [libx264 @ 0x7fb284802800] ref P L0: 43.2%  4.4% 30.8% 21.4%  0.2%
    [libx264 @ 0x7fb284802800] ref B L0: 64.1% 27.3%  8.6%
    [libx264 @ 0x7fb284802800] ref B L1: 85.3% 14.7%
    [libx264 @ 0x7fb284802800] kb/s:19.25
    

    Log output mp4 conversion:

    $ ffmpeg -i slide_%04d.jpg -vf format=rgba -pix_fmt yuv420p -vcodec libx264 -movflags +faststart -preset veryslow output12345.mp4
    ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
    built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
    configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
    libavutil      56. 22.100 / 56. 22.100
    libavcodec     58. 35.100 / 58. 35.100
    libavformat    58. 20.100 / 58. 20.100
    libavdevice    58.  5.100 / 58.  5.100
    libavfilter     7. 40.101 /  7. 40.101
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  3.100 /  5.  3.100
    libswresample   3.  3.100 /  3.  3.100
    libpostproc    55.  3.100 / 55.  3.100
    Input #0, image2, from 'slide_%04d.jpg':
    Duration: 00:00:25.36, start: 0.000000, bitrate: N/A
        Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1280x720, 25 fps, 25 tbr, 25 tbn, 25 tbc
    File 'output12345.mp4' already exists. Overwrite ? [y/N] y
    Stream mapping:
    Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [swscaler @ 0x7fb7e280b000] deprecated pixel format used, make sure you did set range correctly
    [libx264 @ 0x7fb7e1803c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x7fb7e1803c00] profile High, level 5.0
    [libx264 @ 0x7fb7e1803c00] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=60 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 'output12345.mp4':
    Metadata:
        encoder         : Lavf58.20.100
        Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720, q=-1--1, 25 fps, 12800 tbn, 25 tbc
        Metadata:
        encoder         : Lavc58.35.100 libx264
        Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    [mp4 @ 0x7fb7e1801800] Starting second pass: moving the moov atom to the beginning of the file     
    frame=  634 fps=8.5 q=-1.0 Lsize=    2252kB time=00:00:25.24 bitrate= 731.0kbits/s speed=0.337x    
    video:2245kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.307448%
    [libx264 @ 0x7fb7e1803c00] frame I:5     Avg QP:19.12  size: 49393
    [libx264 @ 0x7fb7e1803c00] frame P:131   Avg QP:22.18  size:  9379
    [libx264 @ 0x7fb7e1803c00] frame B:498   Avg QP:23.78  size:  1652
    [libx264 @ 0x7fb7e1803c00] consecutive B-frames:  3.2%  1.6%  3.3% 29.7%  7.9% 16.1%  7.7% 16.4% 14.2%
    [libx264 @ 0x7fb7e1803c00] mb I  I16..4: 45.7% 37.9% 16.4%
    [libx264 @ 0x7fb7e1803c00] mb P  I16..4:  6.0%  5.3%  1.3%  P16..4: 19.9%  1.9%  3.7%  0.3%  0.1%    skip:61.5%
    [libx264 @ 0x7fb7e1803c00] mb B  I16..4:  0.3%  0.4%  0.1%  B16..8: 17.5%  1.0%  0.2%  direct: 0.3%  skip:80.2%  L0:52.3% L1:46.9% BI: 0.8%
    [libx264 @ 0x7fb7e1803c00] 8x8 transform intra:43.0% inter:48.9%
    [libx264 @ 0x7fb7e1803c00] direct mvs  spatial:99.2% temporal:0.8%
    [libx264 @ 0x7fb7e1803c00] coded y,uvDC,uvAC intra: 16.9% 25.8% 16.6% inter: 1.1% 1.9% 1.2%
    [libx264 @ 0x7fb7e1803c00] i16 v,h,dc,p: 61% 28%  6%  6%
    [libx264 @ 0x7fb7e1803c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20%  9% 50%  3%  4%  3%  3%  3%  5%
    [libx264 @ 0x7fb7e1803c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 23% 19%  5%  7%  6%  6%  5% 10%
    [libx264 @ 0x7fb7e1803c00] i8c dc,h,v,p: 46% 40% 13%  1%
    [libx264 @ 0x7fb7e1803c00] Weighted P-Frames: Y:5.3% UV:5.3%
    [libx264 @ 0x7fb7e1803c00] ref P L0: 33.2%  3.1% 11.6%  7.3%  8.8%  6.4%  6.5%  3.1%  3.2%  2.6%  2.4%  2.5%  2.8%  2.8%  2.3%  1.4%
    [libx264 @ 0x7fb7e1803c00] ref B L0: 42.0% 15.1% 12.0%  5.4%  4.9%  4.3%  4.0%  1.9%  2.0%  1.8%  1.7%  1.8%  1.7%  1.1%  0.5%
    [libx264 @ 0x7fb7e1803c00] ref B L1: 83.5% 16.5%
    [libx264 @ 0x7fb7e1803c00] kb/s:725.10
    

    Player: QuickTime, VLC and Kodi on both Linux and Mac.

    EDIT 2: Input files: https://drive.google.com/open?id=1kbBkSDSwe6ywgQ8lkjqkh-MKCzGA4bj8

  • How do you render a moviepy videofileclip with nvenc(gpu) ?

    21 décembre 2018, par Lindau

    I want to render a moviepy videoclip with nvenc(gpu), but I'm only getting this error: TypeError: argument of type 'VideoClip' is not iterable

    videoclip_lst = list()
    for clp in clips_to_use:
        vid_clp = VideoFileClip("{0}\\Videos\\{1}".format(self.cwd, clp))
        time.sleep(0.5)
        videoclip_lst.append(vid_clp)
    
    time.sleep(0.5)
    final_video = concatenate_videoclips(videoclip_lst)
    time.sleep(1)
    params = ["D:\\Downloads\\ffmpeg-20181220-555f332-win64-static\\ffmpeg-20181220-555f332-win64-static\\bin\\ffmpeg.exe", "-i", final_video, "-c", "v", "h264_nvenc", "FM.mp4"]
    final_video.write_videofile("FM.mp4", threads=self.threads, preset="ultrafast", ffmpeg_params=params)
    final_video.close()
    

    I know I do something wrong with the write.videofile parameters, because it does work when I render with my CPU. So, how can I render this videofileclip with nvenc(gpu)? Thanks in advance!

  • FFMEG Watermark over video c#

    21 décembre 2018, par Lắc Si Lê
    public void AddWaterMark(string orginalVideoPath, string waterMarkPath, string outPutVideoPath) { string ffmpeg = System.AppDomain.CurrentDomain.BaseDirectory + @"\Tools\ffmpeg.exe";
    
        System.Diagnostics.Process ffmpegProcess = new System.Diagnostics.Process();
    
        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
    
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
    
        startInfo.Arguments = " -i " + orginalVideoPath + " -i " + waterMarkPath + " -filter_complex \"overlay=10:10\" " + outPutVideoPath;
        try
        {
            System.Diagnostics.Process.Start(startInfo).WaitForExit();
        }
        catch (Exception err)
        {
            MessageBox.Show(err.Message);
        }
    }
    

    Hello you guys, My code is used for making fuction of watermark over video. But It was problematic that the code worked without output....Could you guys figure me out ? (I wonder do we have to change our URL file into their correct form ). I used OpenFIleDialog for getting these files URL, like this

    FolderBrowserDialog folderBrowseDialog = new FolderBrowserDialog();
            if (folderBrowseDialog.ShowDialog() == DialogResult.OK)
            {
                outPutWM = folderBrowseDialog.SelectedPath;
            }
    

    Thank you guys a bunch!