私はffmpegで自分のAndroidプロジェクトでムービーフィルタを使用しようとしています。私はガーディアンプロジェクトのフォークを使用します:Cheers-devffmpeg - アンドロイドでフィルタを使用する
最近のバージョンのffmpeg(〜15日の古いatm)を使用しています。フィルターを有効にするには、--enable-filter=movie
オプションを追加しました。
私はアンドロイドのプロジェクトで、このコマンドラインを使用します。
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
この場合には、 'movie'を使用する理由はありません:ここで働いコマンドは' ffmpegの-i input.mp4 -i 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:コピー出力。完全なffmpegコンソール出力を常に表示する必要があります。 – LordNeckbeard
私はあなたの提案をテストしましたが、それでも動作しません。エラーは異なります。私も自分のコンピュータでテストし、それは完全に働いた。 – kikuchi
完全なffmpegコンソール出力を表示する必要があります。これには、ffmpegの設定とバージョン情報が含まれます。 – LordNeckbeard