Я добавляю видео, используя

ffmpeg -i input.mp4 -vf "pad=width=640:height=480:x=0:y=120:color=black" output.mp4

Команда работает нормально. Но я хочу использовать "-vprofile baseline", чтобы получить видео небольшого размера. Если я запускаю команду

ffmpeg -i input.mp4 -vf "pad=width=640:height=480:x=0:y=120:color=black -vprofile baseline" output.mp4

Это дает ошибку

 01-07 16:35:40.494: I/process data info >>>>>>>>>>(6116): ffmpeg version git-2013-11-13-129af66 Copyright (c) 2000-2013 the FFmpeg developers  built on Nov 13 2013 16:40:26 with gcc 4.4.3 (GCC)  configuration: --arch=arm --target-os=linux --enable-cross-compile --cross-prefix=/Users/sunitha/Downloads/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi- --prefix=../build --sysroot=/Users/sunitha/Downloads/android-ndk/platforms/android-9/arch-arm --extra-cflags=' -I/Users/sunitha/Downloads/android-ndk/platforms/android-9/arch-arm/usr/include -I/Users/sunitha/Downloads/full_ffmpeg/ffmpeg-android/libmp3lame/include -DANDROID -marm -march=armv6 ' --extra-ldflags=' -L/Users/sunitha/Downloads/android-ndk/platforms/android-9/arch-arm/usr/lib -L/Users/sunitha/Downloads/full_ffmpeg/ffmpeg-android/libmp3lame/lib' --disable-debug --enable-libmp3lame --disable-ffplay --disable-ffprobe --disable-ffserver --enable-avfilter --enable-decoders --enable-demuxers --enable-encoders --enable-filters --enable-indevs --enable-network --enable-parsers --enable-protocols --enable-swscale --enable-gpl --enable-nonfree  libavutil      52. 39.100 / 52. 39.100  libavcodec     55. 18.102 / 55. 18.102  libavformat    55. 12.102 / 55. 12.102  libavdevice    55.  3.100 / 55.  3.100  libavfilter     3. 80.100 /  3. 80.100  libswscale      2.  3.100 /  2.  3.100  libswresample   0. 17.102 /  0. 17.102  libpostproc    52.  3.100 / 52.  3.100Unrecognized option 'vprofile baseline'.Error splitting the argument list: Option not found
    01-07 16:35:40.494: I/exit code >>>>>>>>..(6116): 1
    01-07 16:35:40.494: I/exit code >>>>>>>>..(6116): 1

Ошибка:

Unrecognized option 'vprofile baseline'.
Error splitting the argument list: Option not found

1 ответ1

2

Базовый профиль имеет отношение к аппаратным возможностям, а не к размеру. Но если вам нужно его использовать, не используйте внутренний фильтр. Также это несовместимо с кодированием без потерь. Так что постарайтесь:

ffmpeg -i input -pix_fmt yuv420p -c:v libx264 -crf 23 \
-profile:v baseline output.mp4  

Если ваш раздел фильтра работает нормально, используйте его отдельно:

ffmpeg -i input -pix_fmt yuv420p \
-vf "pad=width=640:height=480:x=0:y=120:color=black" -c:v libx264 -crf 23 \
-profile:v baseline output.mp4

Это будет кодировать аудио в AAC с использованием libfaac или libfdk_aac если ваш ffmpeg был скомпилирован с ними. Если у вас их нет, вы можете использовать встроенный кодировщик aac с параметрами -c:a aac -strict -2 . Для получения дополнительной информации см. Руководство по кодированию FFmpeg и AAC .

Вы также можете использовать -c:a copy для потокового копирования аудио, и это не должно повредить кодированию видео. И, конечно, выбор качества видео (-crf) или битрейта видео (-b:v вместо -crf) также зависит от вас. Для получения дополнительной информации см. Руководство по кодированию FFmpeg и x264 .

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