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;

}

该函数来自http://www.zhengqili2.cn/2014/1/20/00018.html  修改了里面一个bug 。

亲测可用

时间: 2024-11-02 21:06:16

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

mavan下scala编译中文乱码的问题.以及内存溢出问题解决

网上都没有找到我这个问题.都是自己解决的.也不知道后来者能不能遇到 关键字: java.lang.StackOverflowError scala not found scala <configuration> <jvmArgs> <jvmArg>-Dfile.encoding=UTF-8</jvmArg> <jvmArg>-Xms64m</jvmArg> <jvmArg>-Xmx1024m</jvmArg>

mac osx wine 1.7.5 源码编译方法及中文乱码的解决

源码编译 1.先安装apple-gcc42,Mac osx自带的 llvm-gcc,编译后,无法运行wine. 1 sudo port install apple-gcc42 2.下载wine源码 1 2 git clone git://source.winehq.org/git/wine.git ~/wine-git cd ~/wine-git 3.安装 X11/XQuartz ,官网下载 XQuartz 4.我是用的是1.7.5编译的 1 git checkout -b 1.7.5 wine

[Shell编译]Windows Cmd显示中文乱码解决方案

chcp 65001  就是换成UTF-8代码页 chcp 936 可以换回默认的GBK chcp 437 是美国英语[Shell编译]Windows Cmd显示中文乱码解决方案

Camus导入中文乱码问题(源码修改、编译、部署、任务启动)

Camus使用过程中业务方反映从Kafka导入至HDFS中的数据有中文乱码问题,且业务方确认写入的数据编码为UTF-8,开始跟进. 问题重现: (1)编写代码将带有中文的字符串以编码UTF-8写入Kafka的某个Topic: (2)将该Topic的数据通过Camus导入HDFS; (3)查看HDFS中导入的文件数据: 确认有中文乱码问题存在,与业务方无关. (1)写入 这是一个写入的代码片段,ProducerRecord是以字符串的形式设置的,而ProducerRecord中的key和value

maven中文乱码问题——编译错误

新建了个web应用,用maven配置的. Java源代码采用了utf-8编码格式. 本地编译打包,报错误. 由于系统默认编码是GBK,因此需要采用utf-8来编译. 采用如下方式: 在pom中添加如下: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> &

解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!

本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开Windows下的项目出现乱码,选择编码为"GB2312"即可! 现在主要来说说程序运行后无法显示中文或者出现乱码的情况,被这个问题困扰了很久,网上看了很多资料贴子都没有解决,所有该添加的都添加了都没办法, http://bbs.csdn.net/topics/390610841?page=

Mac平台下的Qt程序在Windows下执行编译运行出现的中文乱码问题

Mac平台下的Qt程序在Windows下执行编译运行时,QString::asprintf()部分会出现的中文乱码问题,之前已经使用QStringLiteral宏解决了一个中文乱码问题: 但是此种情形单凭QStringLiteral宏解决不了. 原因: mac下采用MinGW编译,在Windows下可能是MinGW,也可能是MSV2017等VS编译器编译.如果win平台下是MinGW编译,在mac下写好的程序在win平台下运行不会出现乱码: 如果win下是MSV2017编译就会出现中文乱码,需要

sublime text3 中 python3编译出现中文乱码解决方法

参考博文:https://blog.csdn.net/Bin_bin_bingo/article/details/80531582 一.乱码现象 利用sublime自带编译快捷方式ctrl+B会出现中文乱码的情况 print("没有循环数据!") print("完成循环!") 二.解决方法 在Python3.sublime.build中写入下面代码,之后再用ctrl+B进行编译,返回“utf-8”,并且能成功打印中文 { "cmd": [&quo

Qt中文乱码问题(比较清楚,同一个二进制串被解释成不同的语言)

文章来源:http://blog.csdn.net/brave_heart_lxl/article/details/7186631 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四