Runtime.exec() を使用して Java から動画に透かしを追加する ffmpeg コマンドを送信する際に問題が発生しています。奇妙なことは、同じコマンドが端末から完全に機能していることです....問題が何であるか考えていますか? これがコマンドです
ffmpeg -i /home/mydir/inputvideo.mp4 -vf "movie=/home/mydir/watermarklogo.png [wm]; [in][wm] overlay=10:10 [out]" /home/mydir/outputvideo.mp4
これはJavaコードです(上記と同じですが、実行コードでラップされ、文字がエスケープされています
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ffmpeg -i /home/mydir/inputvideo.mp4 -vf \"movie=/home/mydir/watermarklogo.png [wm]; [in][wm] overlay=10:10 [out]\" /home/mydir/outputvideo.mp4");
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null)
System.out.println(line);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
これを実行すると、終了コードは常に1になります....これは完全な出力です
ffmpeg version 0.10.9-7:0.10.9-1~saucy1 Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 18 2013 17:40:10 with gcc 4.8.1
configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.9-1~saucy1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/rohif/oshi.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.59.106
Duration: 00:00:48.13, start: 0.000000, bitrate: 2482 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2362 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 117 kb/s
Metadata:
handler_name :
[NULL @ 0x18fb9a0] Unable to find a suitable output format for '[wm];'
[wm];: Invalid argument
Process exitValue: 1