ffmpeg中avio_open无法打开中文路径的解决方法

来源:互联网 发布:灰色系统模型软件 编辑:程序博客网 时间:2024/06/06 09:24

将文件路径转换成为UTF-8编码即可,具体实现如下:

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+1] = '\0';    return nUTF8codeSize;}
 
char filename[256];            ANSIToUTF8((char*)encoderparam->outfilename, filename);            if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0)
 
有可能编译出错,说nUnicodeSize未定义,解决方法:把int nUnicodeSize;放到函数开始的地方。

 

0 0
原创粉丝点击