1

У меня есть портретное видео (в соотношении 9:16), снятое на телефон, и я хотел бы преобразовать его в пейзаж (16:9) с черным или боковым отступом или, в идеале, с размытым отступом (но не слишком) важный).

Есть много вопросов на SE по этому поводу, а также учебники на других сайтах, но я не смог сделать ни одну из этих работ. Они, как правило, либо вообще не работают, либо выдают ошибку "нет такого фильтра", а затем перечисляют ввод команды, например

ffmpeg -i MC_orig.mp4 -filter_complex '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' outputfile.mp4

выдает ошибку

[AVFilterGraph @ 000001bc89ea28c0] No such filter: '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' Error initializing complex filters. Invalid argument

Все найденные мной уроки / вопросы по SE предполагают схожий ввод с приведенным выше, и все они дают в основном одинаковую ошибку.

Мой полный вывод на консоль (Windows 10, с использованием командной строки или Cmder), включая сведения о версии FFmpeg, которую я использую, следующий.

D:\Users\Sam\Videos\FFMPEG\bin>ffmpeg -i MC_orig.mp4 -filter_complex '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' outputfile.mp4 ffmpeg version N-91930-g0caa33c60b Copyright (c) 2000-2018 the FFmpeg developers built with gcc 8.2.1 (GCC) 20180813 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth libavutil 56. 19.101 / 56. 19.101 libavcodec 58. 30.100 / 58. 30.100 libavformat 58. 18.100 / 58. 18.100 libavdevice 58. 4.103 / 58. 4.103 libavfilter 7. 29.100 / 7. 29.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'MC_orig.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2018-09-09T18:07:24.000000Z com.android.version: 7.0 Duration: 00:07:12.03, start: 0.000000, bitrate: 12081 kb/s Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 11950 kb/s, 24.94 fps, 24.92 tbr, 90k tbn, 300 tbc (default) Metadata: rotate : 90 creation_time : 2018-09-09T18:07:24.000000Z handler_name : VideoHandle Side data: displaymatrix: rotation of -90.00 degrees Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default) Metadata: creation_time : 2018-09-09T18:07:24.000000Z handler_name : SoundHandle [AVFilterGraph @ 000001bc89ea28c0] No such filter: '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' Error initializing complex filters. Invalid argument

1 ответ1

2

В Windows аргументы должны быть заключены в двойные кавычки, поэтому

-filter_complex "[0:v]scale=ih*16/9:-1...crop=h=iw*9/16"

Аргументы внутри могут быть заключены в одинарные кавычки, как это

-vf "drawtext=text='Hello World':fontcolor=white"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .