Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
Making a video (.mp4) using every Nth numbering plotted images (.png) with ffmpeg
3 avril 2019, par vanessaI have images file in format starting with number 10000 with every 500 step as shown here
"Qen_10000.png, Qen_10500.png, Qen_11000.png, Qen_11500.png..."
untilQen_80500.png
I want to combine them and make a video .mp4
I've tried
ffmpeg -r 5 -i Qen_%1d000.png video.mp4
and some other combination, but only every 10000 of the numbering.I also tried
ffmpeg -start_number 10000....
but it showed unrecognized option./usr/bin/ffmpeg -start_number 10000 -r 1 -i Qen_distribution_*.png video.mp4 FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers built on Jan 29 2012 23:55:02 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51) configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab libavutil 50.15. 1 / 50.15. 1 libavcodec 52.72. 2 / 52.72. 2 libavformat 52.64. 2 / 52.64. 2 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.19. 0 / 1.19. 0 libswscale 0.11. 0 / 0.11. 0 libpostproc 51. 2. 0 / 51. 2. 0 Unrecognized option 'start_number'
Please suggest some options. Thank you.
-
need help on solving my ffmpeg command line
3 avril 2019, par DRMTVi create a small bash script to encode 1080p video , the video will be added with watermark at bottom left and i need to add a black padding on top and bottom
i tried several way but still no luck , i tried -vf and yes it worked but cant use padding and watermark together , and suggest use filter_complex
if i use this code directly without bash script it work
time ffmpeg -hide_banner -i transformers.mp4 -i transformers.ass -loop 1 -i watermark.png -loop 1 -i logo.png -map 0:0 -map 0:1 -filter_complex "[0:0]scale=(iw*sar)*min(1920/(iw*sar)\,800/ih):ih*min(1920/(iw*sar)\,800/ih), pad=1920:800:(1920-iw*min(1920/iw\,800/ih))/2:(800-ih*min(1920/iw\,800/ih))/2;ass=transformers.ass[FID1];[FID1][2:v]overlay=10:${WATERMARKPOSITION}:repeatlast=0:enable='between(t,300,600)'[FID3];[3:v]fade=in:st=1200:d=1.6:alpha=1,fade=out:st=107998:d=1.6:alpha=1[FID6];[FID3][FID6]overlay=10:5:repeatlast=0:enable='between(t,1200,187922)'" -c:v libx264 -minrate 1800k -maxrate 1800k -bufsize 3600k -profile:v high -c:a aac -b:a 128k -profile:a aac_main -movflags faststart -strict -2 -f mp4 -y "transformers.mp4"
but when i include it with my bash script i got this error ,
[libx264 @ 0x2a063e0] height not divisible by 2 (300x39) Output #0, mp4, to '/movie/Paddy/output/Transformers.Age.of.Extinction.2014.1080p.BluRay.H264.AAC-RARBG.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 comment : Transformers.Age.of.Extinction.2014.1080p.BluRay.H264.AAC-RARBG encoder : Lavf57.71.100 title : Transformers Age of Extinction 2014 1080p BluRay H264 AAC-RARBG - Visit us @ Juraganfilm.COM Stream #0:0: Video: h264 (libx264), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], q=-1--1, max. 2300 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc Metadata: encoder : Lavc56.60.100 libx264 Stream #0:1: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 25 fps Metadata: encoder : Lavc56.60.100 libx264 Stream #0:2(eng): Audio: aac, 0 channels, 128 kb/s (default) Metadata: creation_time : 2017-12-19 07:58:39 handler_name : SoundHandler encoder : Lavc56.60.100 aac Stream mapping: Stream #0:0 (h264) -> scale (graph 0) Stream #0:0 (h264) -> overlay:overlay (graph 0) Stream #2:0 (png) -> ass (graph 0) Stream #3:0 (png) -> fade (graph 0) pad (graph 0) -> Stream #0:0 (libx264) overlay (graph 0) -> Stream #0:1 (libx264) Stream #0:1 -> #0:2 (aac (native) -> aac (native)) Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
and below is the script i have been working on
output="/movie/output" FILESDIR=`find $PWD -type f -regex ".*\.\(mp4\|mkv\|avi\)" | sed 's@.*/@@' | sort -n` for video in $FILESDIR do MOVIETITLE=${video%.*} INFOVID=${MOVIETITLE//./ } BITRATE="${HEIGHT}" WIDTH=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ${video} 2>&1 | sed -e 's|\[.*||g' | sed ':a;N;$!ba;s/\n//g' | sed -e 's|x.*||g') HEIGHT=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 ${video} | sed -e 's/.*x//') WATERMARKPOSITION=$(expr $HEIGHT - 50) VIDEOMAP=$(ffmpeg -i $video 2>&1 | grep "Stream #" | grep Video | sed -e "s|.*\#||g" | sed -e "s|: Video.*||g" | sed -e "s|(.*||g") AUDIOMAP=$(ffmpeg -i $video 2>&1 | grep "Stream #" | grep Audio | sed -e "s|.*\#||g" | sed -e "s|: Audio.*||g" | sed -e "s|(.*||g") MAXRATE=$(expr $BITRATE + 500) BUFFSIZE=$(expr $MAXRATE \* 2) time ffmpeg -hide_banner -i $video -i $MOVIETITLE.ass -loop 1 -i $WATERMARK -loop 1 -i $LOGO -map ${VIDEOMAP} -map ${AUDIOMAP} -filter_complex "[${VIDEOMAP}]scale=(iw*sar)*min(${WIDTH}/(iw*sar)\,${HEIGHT}/ih):ih*min(${WIDTH}/(iw*sar)\,${HEIGHT}/ih), pad=${WIDTH}:${HEIGHT}:(${WIDTH}-iw*min(${WIDTH}/iw\,${HEIGHT}/ih))/2:(${HEIGHT}-ih*min(${WIDTH}/iw\,${HEIGHT}/ih))/2;ass=$MOVIETITLE.ass[FID1];[FID1][2:v]overlay=10:${WATERMARKPOSITION}:repeatlast=0:enable='between(t,300,600)'[FID3];[3:v]fade=in:st=1200:d=1.6:alpha=1,fade=out:st=107998:d=1.6:alpha=1[FID6];[FID3][FID6]overlay=10:5:repeatlast=0:enable='between(t,1200,187922)'" -c:v libx264 -minrate ${BITRATE}k -maxrate ${MAXRATE}k -bufsize ${BUFFSIZE}k -profile:v high -c:a aac -b:a 128k -profile:a aac_main -movflags faststart -strict -2 -f mp4 -y "${output}/$MOVIETITLE.mp4" done
has been working all day and still i cant make it to work.
can someone guide me which part is wrong ?
-
Stacking different length videos not working with ffmpeg and -itsoffset
3 avril 2019, par Lucas MadalozzoI developed a video conferencing app that records the video streams separately, and I am now looking for a way to merge them. At the moment I am experimenting with -itsoffset and hstack to stack 2 videos side by side using this command:
ffmpeg \ -itsoffset 17 -i smaller.mp4 \ -itsoffset 0 -i bigger.mp4 \ -filter_complex hstack=inputs=2 \ -c:v libx264 -crf 23 out.mp4
The result is a side by side video where both streams remain frozen for 17 seconds then start playing, even the bigger.mp4 video that should start at time 0.
Any help would be really appreciated!
ffmpeg verbose:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 4.9.2 (Debian 4.9.2-10+deb8u1) configuration: --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libspeex --enab le-shared --enable-pthreads --enable-libopenjpeg --enable-nonfree --enable-libopus --enable-libvorbis --enable-libvpx 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 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'smaller.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.20.100 Duration: 00:00:05.16, start: 0.000000, bitrate: 444 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 330 kb/s, 32 fps, 32 tbr, 16384 tbn, 64 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 103 kb/s (default) Metadata: handler_name : SoundHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bigger.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf56.36.100 Duration: 00:00:22.03, start: 0.000000, bitrate: 290 kb/s Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 177 kb/s, 32 fps, 32 tbr, 16384 tbn, 64 tbc (default) Metadata: handler_name : VideoHandler Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 103 kb/s (default) Metadata: handler_name : SoundHandler File 'out.mp4' already exists. Overwrite ? [y/N] y Stream mapping: Stream #0:0 (h264) -> hstack:input0 (graph 0) Stream #1:0 (h264) -> hstack:input1 (graph 0) hstack (graph 0) -> Stream #0:0 (libx264) Stream #0:1 -> #0:1 (aac (native) -> aac (native)) Press [q] to stop, [?] for help [libx264 @ 0x206ed00] using SAR=1/1 [libx264 @ 0x206ed00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x206ed00] profile High, level 3.1 [libx264 @ 0x206ed00] 264 - core 146 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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=3 lookahead_threads=1 sliced_thre ads=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 scene cut=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 'out.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.20.100 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 960x360 [SAR 1:1 DAR 8:3], q=-1--1, 32 fps, 16384 tbn, 32 tbc (default) Metadata: encoder : Lavc58.35.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler encoder : Lavc58.35.100 aac frame= 709 fps=130 q=-1.0 Lsize= 573kB time=00:00:22.12 bitrate= 212.2kbits/s dup=544 drop=0 speed=4.05x video:478kB audio:81kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.445685% [libx264 @ 0x206ed00] frame I:3 Avg QP:16.86 size: 38355 [libx264 @ 0x206ed00] frame P:190 Avg QP:18.22 size: 1633 [libx264 @ 0x206ed00] frame B:516 Avg QP:16.23 size: 123 [libx264 @ 0x206ed00] consecutive B-frames: 1.3% 2.8% 6.8% 89.1% [libx264 @ 0x206ed00] mb I I16..4: 6.6% 54.8% 38.6% [libx264 @ 0x206ed00] mb P I16..4: 0.4% 1.5% 0.2% P16..4: 8.7% 4.0% 1.9% 0.0% 0.0% skip:83.3% [libx264 @ 0x206ed00] mb B I16..4: 0.0% 0.1% 0.0% B16..8: 4.2% 0.3% 0.0% direct: 0.0% skip:95.4% L0:37.2% L1:58.9% BI: 4.0% [libx264 @ 0x206ed00] 8x8 transform intra:66.2% inter:63.4% [libx264 @ 0x206ed00] coded y,uvDC,uvAC intra: 66.1% 65.6% 21.6% inter: 1.7% 1.1% 0.0% [libx264 @ 0x206ed00] i16 v,h,dc,p: 21% 26% 11% 42% [libx264 @ 0x206ed00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 23% 13% 5% 7% 8% 7% 7% 6% [libx264 @ 0x206ed00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 24% 9% 6% 7% 7% 6% 7% 7% [libx264 @ 0x206ed00] i8c dc,h,v,p: 46% 25% 20% 9% [libx264 @ 0x206ed00] Weighted P-Frames: Y:1.1% UV:0.0% [libx264 @ 0x206ed00] ref P L0: 66.0% 19.4% 12.0% 2.6% 0.0% [libx264 @ 0x206ed00] ref B L0: 87.2% 11.8% 1.0% [libx264 @ 0x206ed00] ref B L1: 95.2% 4.8% [libx264 @ 0x206ed00] kb/s:176.52 [aac @ 0x204aa00] Qavg: 247.398
-
use of ffmpeg select filter
3 avril 2019, par user651177I am stuck with the use of ffmpeg select filter as I want to pick up only the ending frame of a input video but I cannot figure out the selection expression for the filter to get the work done, my code looks like this:
ffmpeg -i in.mp4 -filter_complex "select=expr_selecting_lastest_frame, overlay=overlay_expr" out.jpg
now how do I coding the expr_selecting_lastest_frame ? do you guys have ideas ? is there any other way to get the work done ? please help, thank you !
-
using ffmpeg scale filter , how to scale a sequence of images with dynamic sizes
3 avril 2019, par user651177as the title asked , I am looking for a method that scales a sequence of images with dynamic sizes , say i have a video stream containing tens or hundreds frames , I want to scale these frames in increasing or decreasing sizes , for example size of frame-1 is 1.25 times of size of frame-0, and size of frame-2 is 1.25 times of size of frame-1, and so on , but the scale filter seems to have no a frame-n parameter in the scaling expression , how can i do this ,
please help