我正在制作一个将视频发送到instagram的机器人。但是instagram只允许 1:1宽高比视频,因此我正在尝试在python(ffmpy模块)中使用ffmpeg调整视频(.mp4)文件的大小。
这是我正在使用的ffmpeg代码
-analyzeduration 20M -probesize 20M -y -i FILE.MP4 -vf "scale=1080:1080:force_original_aspect_ratio=decrease,pad=1080:1080:(ow-iw)/2:(oh-ih)/2:white NEW_FILE.MP4
但这会损坏文件吗?调整大小之前的文件大小为1.815305 MB,但在ffmpeg作业之后为0.058714 MB。那有什么呢?
(我也尝试使用-aspect 1:1
,但这也损坏了文件)
Ffmpy似乎可以正常工作,因为有时如果文件超过20 MB,我会运行该命令以减小文件大小-y -i FILE.MP4 -vcodec libx264 -crf 24 NEW_FILE.MP4
,并且效果很好。
如果需要,这里是完整的日志:
Oct 23 07:32:03 test-instabot app/worker.1: MP4 SIZE BEFORE ASPECT RESIZE IS: 1.815305 MB
Oct 23 07:32:03 test-instabot app/worker.1: ffmpeg version 4.0.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers
Oct 23 07:32:03 test-instabot app/worker.1: built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
Oct 23 07:32:03 test-instabot app/worker.1: configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
Oct 23 07:32:03 test-instabot app/worker.1: libavutil 56. 14.100 / 56. 14.100
Oct 23 07:32:03 test-instabot app/worker.1: libavcodec 58. 18.100 / 58. 18.100
Oct 23 07:32:03 test-instabot app/worker.1: libavformat 58. 12.100 / 58. 12.100
Oct 23 07:32:03 test-instabot app/worker.1: libavdevice 58. 3.100 / 58. 3.100
Oct 23 07:32:03 test-instabot app/worker.1: libavfilter 7. 16.100 / 7. 16.100
Oct 23 07:32:03 test-instabot app/worker.1: libswscale 5. 1.100 / 5. 1.100
Oct 23 07:32:03 test-instabot app/worker.1: libswresample 3. 1.100 / 3. 1.100
Oct 23 07:32:03 test-instabot app/worker.1: libpostproc 55. 1.100 / 55. 1.100
Oct 23 07:32:03 test-instabot app/worker.1: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './media/t4nYbas.mp4':
Oct 23 07:32:03 test-instabot app/worker.1: Metadata:
Oct 23 07:32:03 test-instabot app/worker.1: major_brand : isom
Oct 23 07:32:03 test-instabot app/worker.1: minor_version : 512
Oct 23 07:32:03 test-instabot app/worker.1: compatible_brands: isomiso2avc1mp41
Oct 23 07:32:03 test-instabot app/worker.1: encoder : Lavf58.12.100
Oct 23 07:32:03 test-instabot app/worker.1: Duration: 00:00:06.04, start: 0.000000, bitrate: 2404 kb/s
Oct 23 07:32:03 test-instabot app/worker.1: Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x854, 2402 kb/s, 29.98 fps, 29.98 tbr, 19184 tbn, 59.95 tbc (default)
Oct 23 07:32:03 test-instabot app/worker.1: Metadata:
Oct 23 07:32:03 test-instabot app/worker.1: handler_name : VideoHandler
Oct 23 07:32:03 test-instabot app/worker.1: Stream mapping:
Oct 23 07:32:03 test-instabot app/worker.1: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Oct 23 07:32:03 test-instabot app/worker.1: Press [q] to stop, [?] for help
Oct 23 07:32:03 test-instabot app/worker.1: [swscaler @ 0x6882200] Warning: data is not aligned! This can lead to a speed loss
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] profile High, level 3.2
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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=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 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Oct 23 07:32:03 test-instabot app/worker.1: Output #0, mp4, to './media/t4nYbas.mp4':
Oct 23 07:32:03 test-instabot app/worker.1: Metadata:
Oct 23 07:32:03 test-instabot app/worker.1: major_brand : isom
Oct 23 07:32:03 test-instabot app/worker.1: minor_version : 512
Oct 23 07:32:03 test-instabot app/worker.1: compatible_brands: isomiso2avc1mp41
Oct 23 07:32:03 test-instabot app/worker.1: encoder : Lavf58.12.100
Oct 23 07:32:03 test-instabot app/worker.1: Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1080x1080, q=-1--1, 29.98 fps, 19184 tbn, 29.98 tbc (default)
Oct 23 07:32:03 test-instabot app/worker.1: Metadata:
Oct 23 07:32:03 test-instabot app/worker.1: handler_name : VideoHandler
Oct 23 07:32:03 test-instabot app/worker.1: encoder : Lavc58.18.100 libx264
Oct 23 07:32:03 test-instabot app/worker.1: Side data:
Oct 23 07:32:03 test-instabot app/worker.1: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Oct 23 07:32:03 test-instabot app/worker.1: frame= 1 fps=0.0 q=29.0 Lsize= 57kB time=00:00:00.00 bitrate=9032923.1kbits/s speed=7.89e-05x
Oct 23 07:32:03 test-instabot app/worker.1: video:57kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.383109%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] frame I:1 Avg QP:29.91 size: 57223
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] mb I I16..4: 12.6% 74.9% 12.5%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] 8x8 transform intra:74.9%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] coded y,uvDC,uvAC intra: 52.6% 24.4% 1.0%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] i16 v,h,dc,p: 94% 0% 5% 1%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 10% 28% 4% 6% 5% 7% 5% 7%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 17% 15% 7% 9% 7% 9% 7% 9%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] i8c dc,h,v,p: 78% 9% 12% 2%
Oct 23 07:32:03 test-instabot app/worker.1: [libx264 @ 0x66c99c0] kb/s:13722.08
Oct 23 07:32:03 test-instabot app/worker.1: MP4 SIZE AFTER ASPECT RESIZE IS: 0.058714 MB
答案 0 :(得分:2)
您的命令模板显示-i FILE.MP4
和NEW_FILE.MP4
,但是在您的实际命令中,输入为./media/t4nYbas.mp4
,输出为相同的./media/t4nYbas.mp4
。 FFmpeg无法就地编辑文件。输出文件必须不同。