ffmpeg有关问题一(编译+中文乱码)

编译问题:

使用vs创建有关ffmpeg的工程,比如用ffmpeg来截取文件,转码等等的时候,使用debug模式,调试成功后,再使用release生成exe的时候,往往会报错,不是分配指针的时候,有问题,,就是运行的时候,显示无法定位序数,无法连接到avcodec-xx.dll ,这种问题是因为,生成release的时候,对代码进行了优化,删除了部分中间结果,但是ffmpeg却需要这些中间结果,所以生成的exe不正确。

解决方法是 打开项目属性页 打开链接器 优化选项 引用后面 选择否(/opt:NOREF)。即可

中文乱码:

使用ffmpeg生成音频文件的时候,如果名字中包含中文,就会乱码。解决的方法是将filename 变成unicode 编码。下面的函数是将一个多字节串 变成unicode串//pszCode 是多字节的filename UTF8code 是预分配好的空间,保存unicode字符串int ANSIToUTF8(char* pszCode, char* UTF8code){ WCHAR Unicode[100]={0,}; char utf8[100]={0,}; // read char Lenth int nUnicodeSize = MultiByteToWideChar(CP_ACP, 0, pszCode, strlen(pszCode), Unicode, sizeof(Unicode)); memset(UTF8code, 0, nUnicodeSize+1); // read UTF-8 Lenth int nUTF8codeSize = WideCharToMultiByte(CP_UTF8, 0, Unicode, nUnicodeSize, UTF8code, sizeof(Unicode), NULL, NULL); // convert to UTF-8 MultiByteToWideChar(CP_UTF8, 0, utf8, nUTF8codeSize, Unicode, sizeof(Unicode)); UTF8code[nUTF8codeSize] = ‘\0’; return nUTF8codeSize;}该函数来自 修改了里面一个bug 。亲测可用

你并不一定会从此拥有更美好的人生,

ffmpeg有关问题一(编译+中文乱码)

相关文章:

你感兴趣的文章:

标签云: