我只是c ++的新手。 我正在尝试在Visual Studio 2012中的C ++项目中使用FFmpeg,方法是调用其中的ffmpeg.exe文件。
这是我到目前为止所尝试的:
//FFMPEG CALLING
char ffmpeg2[BUFSIZ];
strcpy(ffmpeg2,"..\bin\ffmpeg.exe");
strcat(ffmpeg2,"-f s16le -ar 8K -ac -ss");
strcat(ffmpeg2,buffers); //string hh:mm:ss
strcat(ffmpeg2,"-t");
strcat (ffmpeg2,buffer); //string hh:mm:ss
strcat(ffmpeg2,"-i ..\\rec.pcm ..\Desktop\newFolder\filename");
if(system(ffmpeg2) !=0)
{
ft =fopen("ffmpeg_err.txt","a");
fprintf( ft,"my command failed...\n" );
fclose(ft);
}
else
{system(ffmpeg2);}
它在文本文件中继续生成我的命令失败。 你们有什么暗示如何解决它。
答案 0 :(得分:0)
你在调用strcat之前或之后没有添加任何空格所以你的最终命令就像是
..\bin\ffmpeg.exe-f s16le -ar 8K -ac -ss<buffers>-i ..\\rec.pcm ..\Desktop\newFolder\filename
在ffmpeg.exe之后添加一个空格,在-ss之后,-t之前和-i之前添加一个空格
最后的命令将成为
..\bin\ffmpeg.exe-f s16le -ar 8K -ac -ss <buffers> -i ..\\rec.pcm ..\Desktop\newFolder\filename
这应该可以解决您的问题