[ffmpeg]FFmpeg程序视频转换中文汉字乱码的问题
我用ffmpeg编码生成avi文件,可是如果用中文文件名,生成的真正的文件的文件名里所有的中文都变成乱码,请问怎么解决
各位高人,我用ffmpeg编码生成avi文件,可是如果用中文文件名,生成的真正的文件的文件名里所有的中文都变成乱码,请问怎么解决?明明传进去的char * filename用vs跟踪确实是中文啊! 怎么解决啊?
奇怪的是我在程序里用正确的中文文件名去打开文件,也能打开,而且打开的就是那个显示乱码的文件。
中文乱码解决:
使用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;
- }
该函数来自http://www.zhengqili2.cn/2014/1/20/00018.html 修改了里面一个bug 。
亲测可用
热门文章推荐
- [Red5]Red5之Flash流媒体服务器的安装与使用教程完整版(组图)
- [rtsp]设置海康配置DDNS远程访问的用户手册(组图说明)
- [live555]live555直播rtsp流
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [FFmpeg]FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
- [海康]海康网络摄像机激活功能图文教程
- [RED5]搭建RED5直播用流媒体服务(搭直播环境)
请稍候...