zoukankan      html  css  js  c++  java
  • ffmpeg中avio_open无法打开中文路径的解决方法

    将文件路径转换成为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;
    }

    ...

    if (!(fmt->flags & AVFMT_NOFILE))
            {            
                char filename[256];
                ANSIToUTF8((char*)encoderparam->outfilename, filename);
                if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0)
                {
                    return URL_OPEN_FAILD;
                }
            }

    即可。

  • 相关阅读:
    【数据库领域】mysql中in与or对比
    数据库优化
    数据库-索引
    数据库-事务
    数据库-视图
    数据库设计
    数据库编程提高
    数据库高级操作
    数据库基本操作
    with-上下文管理器
  • 原文地址:https://www.cnblogs.com/youfal/p/2704094.html
Copyright © 2011-2022 走看看