gpt4 book ai didi

android - ffmpeg - 在 android 中使用过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:02:41 24 4
gpt4 key购买 nike

我正尝试在我的 android 项目中使用 ffmpeg 的电影过滤器。我使用监护人项目的分支:Cheers-dev

它使用最新版本的 ffmpeg(大约 15 天前的 atm)。我添加了选项 --enable-filter=movie 来激活过滤器。

我在我的 android 项目中使用这个命令行:

ffmpeg -i input.mp4 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" -strict -2 outputvideo.mp4

它与我在 Debian Wheezy 上的桌面版本完美配合。但是不可能让它在我的 Android 上运行。所有其他命令都有效。

这里是失败时的错误:No such filter: 'movie'

我还使用选项 -filter_complex 进行了测试,但出现了一些不同的错误:

$ ffmpeg -y -loglevel debug -i /storage/sdcard0/test/hsgjr_export.mp4 -i /storage/sdcard0/test/watermark.png -filter_complex "[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]" -map [out] -map 0:a -codec:a copy /storage/sdcard0/test/hsgjr_watermark.mp4

ffmpeg version N-58429-gccdfa3e Copyright (c) 2000-2013 the FFmpeg developers
built on Dec 10 2013 01:12:39 with gcc 4.4.3 (GCC)
configuration: --arch=arm --cpu=cortex-a8 --target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/opt/android/ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --sysroot=/opt/android/ndk-r8/platforms/android-14/arch-arm --extra-cflags='-I../x264 -I/Android/cheers/android-ffmpeg/data/data/info.guardianproject.ffmpeg/app_opt/include -mfloat-abi=softfp -mfpu=neon' --extra-ldflags='-L../x264 -L/Android/cheers/android-ffmpeg/data/data/info.guardianproject.ffmpeg/app_opt/lib' --enable-version3 --enable-gpl --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filter=movie --enable-avresample --enable-libvorbis --disable-indevs --enable-indev=lavfi
libavutil 52. 54.100 / 52. 54.100
libavcodec 55. 44.100 / 55. 44.100
libavformat 55. 21.101 / 55. 21.101
libavdevice 55. 5.100 / 55. 5.100
libavfilter 3. 91.100 / 3. 91.100
libavresample 1. 1. 0 / 1. 1. 0
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input file with argument '/storage/sdcard0/test/hsgjr_export.mp4'.
Reading option '-i' ... matched as input file with argument '/storage/sdcard0/test/watermark.png'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument '"[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]"'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '[out]'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-codec:a' ... matched as option 'codec' (codec name) with argument 'copy'.
Reading option '/storage/sdcard0/test/hsgjr_watermark.mp4' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option loglevel (set logging level) with argument debug.
Applying option filter_complex (create a complex filtergraph) with argument "[0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out]".
Successfully parsed a group of options.
Parsing a group of options: input file /storage/sdcard0/test/hsgjr_export.mp4.
Successfully parsed a group of options.
Opening an input file: /storage/sdcard0/test/hsgjr_export.mp4.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1274cd0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1274cd0] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1274cd0] File position before avformat_find_stream_info() is 1196725
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1274cd0] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1274cd0] File position after avformat_find_stream_info() is 30451
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/sdcard0/test/hsgjr_export.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.21.101
Duration: 00:00:00.96, start: 0.000000, bitrate: 9972 kb/s
Stream #0:0(und), 1, 1/1200000: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 1/2400000, 9830 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 1, 1/48000: Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
handler_name : SoundHandler
Successfully opened the file.
Parsing a group of options: input file /storage/sdcard0/test/watermark.png.
Successfully parsed a group of options.
Opening an input file: /storage/sdcard0/test/watermark.png.
[AVIOContext @ 0x12870f0] Statistics: 26515 bytes read, 0 seeks
Input #1, image2, from '/storage/sdcard0/test/watermark.png':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #1:0, 1, 1/25: Video: png, rgba, 400x170, 1/25, 25 tbr, 25 tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output file /storage/sdcard0/test/hsgjr_watermark.mp4.
Applying option map (set input stream mapping) with argument [out].
Applying option map (set input stream mapping) with argument 0:a.
Applying option codec:a (codec name) with argument copy.
Successfully parsed a group of options.
Opening an output file: /storage/sdcard0/test/hsgjr_watermark.mp4.
[AVFilterGraph @ 0x127d5f0] No such filter: '"'
Error configuring filters.
[AVIOContext @ 0x127d2b0] Statistics: 67296 bytes read, 2 seeks

输出比上一个好,但我想我遗漏了一些东西。

解决方案:我从 filter_complex 参数中删除了引号并且有效。

这是工作命令:

$ ffmpeg -y -i /storage/sdcard0/test/hsgjr_export.mp4 -i /storage/sdcard0/test/watermark.png -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy /storage/sdcard0/test/hsgjr_watermark.mp4

最佳答案

为了解决我的问题,我删除了 filter_complex 参数周围的双引号。这是工作命令:

$ ffmpeg -y -i /storage/sdcard0/test/hsgjr_export.mp4 -i /storage/sdcard0/test/watermark.png -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy /storage/sdcard0/test/hsgjr_watermark.mp4

关于android - ffmpeg - 在 android 中使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20504125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com