我有一个视频文件,我正在尝试使用-vf参数来扩展它,用于在android项目中使用的ffmpeg“Angel”repo版本。 通过NDK构建顺利,但是当我编写此代码时,应用程序启动并退出。如果我使用除-vf之外的任何其他参数,它可以正常工作并导出视频。
JNIEXPORT jint JNICALL Java_com_schemaphic_mirrorapp_jni_NativeHelper_hFlipVideoEffect( JNIEnv *env, jstring outFile )
{
//ffplay -i INPUT -vf "crop=iw/2:ih:0:0,split[tmp],pad=2*iw[left]; [tmp]hflip[right]; [left][right] overlay=W/2"
//fmpeg -i input -vf scale=iw/2:-1 output
//ffmpeg -i input -vf yadif=0:0:0,scale=iw/2:-1 output
char** arguments;
int count = 6;
arguments = calloc( count, sizeof( char* ) );
arguments[0] = "ffmpeg";
arguments[1] = "-i";
arguments[2] = "/sdcard/mirrorapp/cropVideo.mp4";
arguments[3] = "-vf";
arguments[4] = "scale=120:-1";
//arguments[5] = "-aspect";
//arguments[6] = "3:2";
//arguments[5] = "-vcodec";
//arguments[6] = "mpeg4";
/*arguments[9] = "-r";
arguments[10] = "19";
arguments[5] = "-cropright";
arguments[6] = "240";
arguments[7] = "-padleft";
arguments[8] = "0";
arguments[9] = "-padtop";
arguments[10] = "0";
arguments[11] = "-aspect";
arguments[12] = "3:2";
arguments[13] = "-an";
arguments[5] = "-vcodec";
arguments[6] = "mpeg4";*/
//arguments[7] = "-sameq";
arguments[5] = "/sdcard/mirrorapp/cropFlipVideo.mp4";
ffmpeg_main( count, arguments );
//free(arguments);
return 1;
}
这让我觉得设置正确。参数-vf在某种程度上不起作用或者不确定更新的语法。请帮助。
答案 0 :(得分:1)
我想我有答案:
arguments[3] = "-vf";
arguments[4] = "\"scale=120:-1\"";
我相信ffmpeg
期望过滤器参数在双引号内。