x.264编译问题合集

来源:互联网 发布:乐高机器人编程语言 编辑:程序博客网 时间:2024/05/20 02:55

*x264 for vc

http://lspbeyond.go1.icpcn.com/x264/index.htm

 转载

*x264编译问题合集(不断更新中...)

NOTE:vc71下试验的错误情况,vc6下会有稍许差别,但也类似。

[1] x264路径带空格

错误:

正在执行自定义生成步骤

nasm: error: more than one input file specified

type `nasm -h' for help

Project : error PRJ0019: 工具从"正在执行自定义生成步骤"

特征:

nasm出现错误

原因:

你的x264文件夹的路径中有空格,如下所示:

D:\program files\x264-051226

nasm.exe把空格前的字符串作为路径,从而导致了错误。

 

[2] nasm 未安装

错误:

Assembly "..\..\common\i386\predict-a.asm"

'nasm' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

Error executing c:\windows\system32\cmd.exe.

特征:

'nasm' 不是内部或外部命令,也不是可运行的程序

原因:

没有安装nasm

解决:从本站下载nasm.exe(098版本),拷贝到vc安装目录的bin文件夹下就可以了。

 

[3] vc6没有打补丁

错误:

common.h(69) : fatal error C1600: unsupported data type

common.h:error c2485:'align':unrecognized externded attribute syntax error:'c'

特征:

数据类型不支持

原因:

vc6没有安装sp5或vcpp

 

[4] .c文件按没有包含到工程中

错误:

x264.obj : error LNK2019: 无法解析的外部符号 _mk_createWriter ,该符号在函数 _open_file_mkv 中被引用

x264.obj : error LNK2019: 无法解析的外部符号 _mk_addFrameData ,该符号在函数 _write_nalu_mkv 中被引用

x264.obj : error LNK2019: 无法解析的外部符号 _mk_startFrame ,该符号在函数 _write_nalu_mkv 中被引用

x264.obj : error LNK2019: 无法解析的外部符号 _mk_writeHeader ,该符号在函数 _write_header_mkv 中被引用

x264.obj : error LNK2019: 无法解析的外部符号 _mk_setFrameFlags ,该符号在函数 _set_eop_mkv 中被引用

x264.obj : error LNK2019: 无法解析的外部符号 _mk_close ,该符号在函数 _close_file_mkv 中被引用

特征:

link 错误,出现无法解析的外部符号。

原因:

.c文件按没有包含到工程中。这是因为x264的win32下的vc工程没有和x264同步更新所致,当x264加入了新的源文件,而vc工程中没有包含进来,就会有这样的错误。像上例就是因为matroska.c没有包含到工程中所致。

Ps: .h文件没有包含的工程中,一般不会出错,但建议还是包含进来,养成好习惯嘛。

 

[5] 安装了intel编译器(未试验)

错误:

LINK : fatal error LNK1104: cannot open file "libm.lib"

Error executing link.exe.

特征:

libm.lib link 错误

原因:

可能是安装了intel c++ complier

 

[6] .asm文件没有设置自定义编译选项

错误:

libx264.lib(cpu.obj) : error LNK2019: 无法解析的外部符号 _x264_cpu_cpuid ,该符号在函数 _x264_cpu_detect 中被引用

libx264.lib(cpu.obj) : error LNK2019: 无法解析的外部符号 _x264_cpu_cpuid_test ,该符号在函数 _x264_cpu_detect 中被引用

libx264.lib(cpu.obj) : error LNK2019: 无法解析的外部符号 _x264_emms ,该符号在函数 _x264_cpu_restore 中被引用

特征:

容易和没有包含.c文件的错误混淆,其特征就是出现的外部符号都是汇编文件中的。

原因:

每个.asm文件都有自定义的编译选项。

解决(针对本例):vc下,project setting,选中cpu-a.asm这个文件,然后将其commands设置为:

nasm -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)

 

 

[7] 工程转换造成的nasm编译错误

错误:

nasm: error: no input file specified

type `nasm -h' for help

特征:

nasm: error: no input file specified

原因:

在vc71下打开.dsw工程文件时,会自动转换工程文

件,最后保存为.vcproj, .sln等文件。

转换后.asm文件的自定义编译命令会被修改,从而产生如上的编译错误。

正确的.asm编译命令:

nasm -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)

被修改后的编译命令:

nasm -f win32 -DPREFIX -o "$(IntDir)"\"$(InputName)".obj "$(InputPath)"

解决办法:

就将多出的引号删除即可。

 

 

 

*关于我制作的vc下的x264版本,若遇到问题,我尽量帮你解决。

 

 

< type="text/javascript"> google_ad_client = "pub-7168982058404735"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; google_ad_channel = ""; google_color_border = "C3D9FF"; google_color_bg = "FFFFFF"; google_color_link = "3D81EE"; google_color_text = "000000"; google_color_url = "008000"; google_ui_features = "rc:0"; google_language = 'zh-CN'; //--> < type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
发表于 @ 2005年12月20日 14:55:00 | 评论( 202 ) | 编辑| 举报| 收藏

旧一篇:我建了个x264 for vc子站,希望大家捧场! | 新一篇:[转载] ISO 14496-10 (Video) - Advanced Video Coding (AVC) (from doom9 )
查看最新精华文章 请访问博客首页相关文章
我建了个x264 for vc子站,希望大家捧场!x264在VC环境编译出错原因分析(转载)疯狂的程序员(79)unresolved external symbol "public: virtual __thiscall...错误编译xvid 1.1.3疯狂的程序员 - 致命错误[转载]x264在VC环境编译出错原因分析x264编译问题合集:) 发表于2005年12月28日 21:37:00  IP:举报回复删除
好像编译的时候有错误啊,在rdo那个文件里面李世平 发表于2006年1月4日 20:32:00  IP:举报回复删除
to 瓜子,
在我机子上没有碰到你的问题

ps: to everyone
提问时请注明说用的vc版本,及所用的x264版本
这样我好对症下药。

to zhouguozhi,
release版我没有调试过,是我偷懒了,sorry,后面版本将会解决release版的问题
瓜子 发表于2006年1月5日 9:42:00  IP:举报回复删除
发现我这里还有
F:\264\x264-051231\x264-051231\encoder\me.c(325) : fatal error C1600: unsupported data type
F:\264\x264-051231\x264-051231\encoder\macroblock.c(148) : fatal error C1600: unsupported data type
这个错误,应该是没没有把补丁装好
我现在装了一个sp6的补丁,装不上vcpp5
但是现在找不到sp5,你给那个网址上面也没有这个下载连接了,在微软网站上只是找到了sp6瓜子 发表于2006年1月10日 12:46:00  IP:举报回复删除
谢谢李老师和jimmy,我找到了sp5和vcpp5.exe,基本上补丁是打好了,编译没有出错。但是要给出可执行文件的路径,在bin目录下面没有可执行文件,只有一个libx264文件。
我用VC6.0,sp5,vcpp5,nasm补丁也打上了。
x264的版本是x264-051231李世平 发表于2006年1月10日 9:47:00  IP:举报回复删除
既然有了sp6,有没有对应的vcpp6呢/李世平 发表于2006年1月10日 20:04:00  IP:举报回复删除
原因:
x264下面有两个工程,libx264和x264,你只编译了前面一个。
解决:
vc下选择build->batch build,然后将两个工程都勾上,再进行编译就可以了。瓜子 发表于2006年1月11日 22:29:00  IP:举报回复删除
呵呵,果然行了,谢谢
李世平 发表于2006年1月13日 12:22:00  IP:举报回复删除
这是因为你直接按F5调试的时候,没有输入参数,就像你在命令行输入x264 而没有加上参数一样,当然转到help()里去了。
解决办法:
project setting里,将调试选项设好,同时输出文件路径也要对应瓜子 发表于2006年1月12日 21:50:00  IP:举报回复删除
今天看了一下程序,但是到现在还没有找到在什么地方设置输入文件。
单步运行到一个地方就退出,打印出帮助信息。
不知道是不是在project setting里面设置,他的参数格式是什么。
请李老师多多指教diyun 发表于2006年1月16日 16:48:00  IP:举报回复删除
李老师,你好:
我使用了你的x264,编译成功,编码也没问题,我想问一下,我产生的
test.264用什么播放器可以看到视频内容哪?
谢谢!一得 发表于2006年1月16日 16:11:00  IP:举报回复删除
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp5/default.aspx
可下载sp5,要选择语言diyun 发表于2006年1月17日 9:41:00  IP:举报回复删除
李老师:谢谢你
我看到了tools里面有avc2avi,用它做了一个 avi转换器,
呵呵,搞定了!
感谢你!
tyzhaoqi 发表于2006年2月11日 15:06:00  IP:举报回复删除
有没有x264 for vc 的注解,有的话读起来好懂一些!myxmu 发表于2006年2月13日 13:32:00  IP:举报回复删除
现在做一个H.264的项目,是对视频文件进行编码->无线传输->解码的,已经做了H.264的编解码(vc),但只能对.YUV格式的,现想增加对其他格式(rm,rmvb,avi)之类的格式也能进行处理,不知道该如何做,

是否在软件中集成其他格式的解码器就行,如果是要如何集成,

能不能给点意见?

李世平 发表于2006年2月14日 15:30:00  IP:举报回复删除
to tyzhaoqi :
所有的修改之处都用//lsp..进行标示。
你在vc下进行全局查找,就可以查看所有的修改了。


to myxmu:
已回复你的邮件。李世平 发表于2006年2月14日 15:31:00  IP:举报回复删除
to tyzhaoqi :
所有的修改之处都用//lsp..进行标示。
你在vc下进行全局查找,就可以查看所有的修改了。


to myxmu:
已回复你的邮件。luk 发表于2006年2月15日 10:07:00  IP:举报回复删除
你比较过vc71下对c代码编译的可执行文件, vc71下对mmx代码编译的可执行文件,进行过效率比较吗(release)? vc71的编译器优化性能好像比较好啊.
alaix 发表于2006年2月16日 15:08:00  IP:举报回复删除
李老师,您好!
我们在研究一个简单的h264流服务器。我们修改x264的源代码,将一个yv12格式的avi文件直接压缩为h264编码的数据,然后加RTP包头发往客户端;客户端用quicktime打开事先编辑好的sdp文件,接收h264流并播放(注:我们没有采用RTSP协议,仅作一个特例的测试)。
问题:
我们基本肯定h264编码数据是正确的,但是quicktime接收到数据,仍不能正常显示视频图像。
可能原因:
1、RTP打包格式不对;
2、sdp文件内容书写不对。

请问李老师:
1、RTP对h264打包格式有什么特别要求?或有没有什么资料或现有源代码可研究?
2、针对某个h264编码的媒体文件,怎么书写其sdp描述?有没有现成的开源代码可研究?
谢谢
此致
敬礼
学生:alaix
Email: xudl.kdx@tom.com
希望收到你的邮件!!!
李世平 发表于2006年2月17日 16:22:00  IP:举报回复删除
to alaix:
1.264的rtp封装可以参考rfc3984里面讲解的很详细
2.sdp描述针对不同媒体格式其内容是差不多的,你可以参考rfc2327。其中关键一点就是要设定媒体类型号是98。rtp头部PT也要设为98ever 发表于2006年2月27日 16:17:00  IP:举报回复删除
李老师:您好。
我的编译通过了,用DOS命令测试编码对了。想问一下,那个vfw文件里的工程是不是用于播放编码所得文件的?好像要安装,是这样吗?能指导下具体怎么使用吗?李世平 发表于2006年2月28日 20:28:00  IP:举报回复删除
to jsdadong,你好,

jm decoder是有一定的错误恢复能力,但能力有限。你不要把随机噪声加在头信息也就是参数集部分。
ps: 错误恢复不是有跟无的问题,还是有恢复的程度的。最简单的恢复,就是碰到解码错误,马上找下一个start code,当然,这种方法恢复的程度是最低的了。

另外,最近都在忙毕业论文的事,所以有段时间没有上线了,抱歉。李世平 发表于2006年2月28日 20:30:00  IP:举报回复删除
CSDN BLOG总是出问题,上面的回复是针对另外一贴的。

to ever: vfw是对编码器的封装,便于一些视频压缩软件调用,具体使用查查vfw的知识jsdadong 发表于2006年2月28日 23:37:00  IP:举报回复删除
H.264的头信息好像不是固定长度的吧,是否有开始和结束的标志code,这样好将其分离开来,再对编码数据加误码。还没有深入地看码流的句法结构,请李大师先指点一下。
另外是否有比较好的仿真信道丢包(丢包率可控)的方法?
谢谢您的解答!ever 发表于2006年3月1日 9:58:00  IP:举报回复删除
谢谢李老师。
还想请问一下,从网上下载的你的264的代码(我用的是x264Peter050530),它和那些标准模型(JM86)有什么主要不同吗?谢谢。李世平 发表于2006年3月3日 13:08:00  IP:举报回复删除
to ever:
一切的不同都来源自其目的不一样。
jm是校验模型,需要实现264的全部特性。
x264面向实用,主要应用在dvdrip,所以选择的是真正有效的264特性。
具体差异可以看x264的开发网站。
ps: x264的后期版本增加了对high profile的支持李世平 发表于2006年3月3日 13:13:00  IP:举报回复删除
to jsdadong:

264的头信息叫做参数集,分为序列参数集和图像参数集,
而264的码流都是封装在nal种,两个参数集都有相应的nal type。你可以通过nal type进行判断。
因为头信息很重要,所以264设计的参数集可以进行带外传输。因此,我觉得你不能在参数集中加误差。
另外,信道误码的问题我不熟悉。李世平 发表于2006年3月3日 14:28:00  IP:举报回复删除
to ho:
BMP2SEQ.exe支持的输入是24位bmp图,输出是yuv4:2:0
参数设置,从你的描述中看是没有问题。

如babyroll 说的,程序应该没有问题,你再细心检查一下。
冰凌儿 发表于2006年3月7日 16:44:00  IP:举报回复删除
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory

inttypes.h文件在哪里可以找到??李世平 发表于2006年3月8日 22:10:00  IP:举报回复删除
x264 for vc: 060308已经更新!!ruby 发表于2006年3月9日 23:15:00  IP:举报回复删除
李老师:
您好!
我已经装了setupsp5.exe,在编译libx264.dsw时出现如下问题:
F:\264\源程序\x264Peter050530\x264-050530\encoder\ratecontrol.c(1028) : error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64

请问是哪里出了问题?
十分感谢!!ruby 发表于2006年3月9日 23:25:00  IP:举报回复删除
在编译最新版本的时候除了上述错误还出现
F:\264\源程序\x264-060308\encoder\me.c(477) : fatal error C1600: unsupported data type

请问是怎么回事啊?
很着急^_^
多谢啦2李世平 发表于2006年3月10日 8:18:00  IP:举报回复删除
to ruby:
从症状上看应该是:

[3] vc6没有打补丁

错误:

common.h(69) : fatal error C1600: unsupported data type

common.h:error c2485:'align':unrecognized externded attribute syntax error:'c'

特征:

数据类型不支持

原因:

vc6没有安装sp5或vcpp

====
继续关注
ruby 发表于2006年3月10日 9:34:00  IP:举报回复删除
李老师:
您好!
的确是没有装vcpp,现在没有错误了,但是有很多警告,比如
F:\264\源程序\x264Peter050530\x264-050530\encoder\ratecontrol.c(428) : warning C4244: '=' : conversion from 'int ' to 'float ', possible loss of data
F:\264\源程序\x264Peter050530\x264-050530\encoder\ratecontrol.c(675) : warning C4244: 'initializing' : conversion from 'double ' to 'float ', possible loss of data
F:\264\源程序\x264Peter050530\x264-050530\encoder\ratecontrol.c(704) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data

请问是不是还存在什么问题?
十分感谢!ever 发表于2006年3月10日 11:00:00  IP:举报回复删除
李老师:
您好!
想麻烦问一下,x264程序中那些HAVE_MMXEXT是不是为提高速度呢?如果想做移植就不能用了,要全都去掉?
非常感谢!!!ruby 发表于2006年3月12日 22:27:00  IP:举报回复删除
李老师:
这几天很忙吗?怎么没有来?
我在单步调试程序的时候mian程序刚调到第二步 _setmode(_fileno(stdin), _O_BINARY);
时让输入setmode.c文件的路径,可是找不到该文件啊,请问是怎么回事?
多谢啦,我是小菜鸟^_^。ruby 发表于2006年3月12日 22:49:00  IP:举报回复删除
李老师:
文件夹里面示例中有yuv文件foreman_part_qcif.yuv,我怎样做才能看到压缩后的输出文件呢?
别骂我呀^_^study 发表于2006年3月15日 15:29:00  IP:举报回复删除
请教李老师:
x264的解码器现在是不是不能工作?guanchanghui 发表于2006年3月16日 13:26:00  IP:举报回复删除
请教李老师:
我做过T264的pc的移植,发现了很多问题,这些问题已经困扰我很长时间,就是VC运行库的问题,本来从网上下的t264的运行库都是singlethread*,但是MFC发布时的运行库是 多线程的库,所以PC 上写出来的程序总是刚开始编码就内存不能读,我现在真的不知道是否是t264本身的问题,移植时在非强制帧的情况下不能编过,把强制改为1就可以,现在我们小组想用x264做编码的移植,但是看了x264的源码,感觉比T264复杂多了,不知从何下手,需要注意什么问题,二者都用了汇编优化,稳定性怎么样,直接向mfc的程序移植如何起步,邮箱guanchanghui@gmail.com
zhoulingj 发表于2006年3月16日 16:38:00  IP:举报回复删除
请教李老师:
编译的时候出现下面的东西:
Assembly "..\..\common\i386\predict-a.asm"
Invalid keyboard code specified
nasm: fatal: unable to open input file `..\..\common\i386\predict-a.asm'
执行 c:\winnt\system32\cmd.exe 时出错.

不知道什么原因...锋寒 发表于2006年3月16日 16:41:00  IP:举报回复删除
嗯,我装的是集成了SP6的VC++6.0,也装了NASM0.98锋寒 发表于2006年3月16日 17:12:00  IP:举报回复删除
现在的问题成这样了
Assembly "..\..\common\i386\predict-a.asm"
Assembly "..\..\common\i386\mc-a2.asm"
..\..\common\i386\mc-a2.asm:287: short jump is out of range
..\..\common\i386\mc-a2.asm:296: short jump is out of range
..\..\common\i386\mc-a2.asm:366: short jump is out of range
..\..\common\i386\mc-a2.asm:372: short jump is out of range
执行 c:\winnt\system32\cmd.exe 时出错.
锋寒 发表于2006年3月16日 17:14:00  IP:举报回复删除
Assembly "..\..\common\i386\mc-a.asm"
..\..\common\i386\mc-a.asm:227: parser: instruction expected
..\..\common\i386\mc-a.asm:229: symbol `movdqu' redefined
..\..\common\i386\mc-a.asm:229: parser: instruction expected
..\..\common\i386\mc-a.asm:383: symbol `movdqu' redefined
..\..\common\i386\mc-a.asm:383: parser: instruction expected
..\..\common\i386\mc-a.asm:384: symbol `movdqu' redefined
..\..\common\i386\mc-a.asm:384: parser: instruction expected
..\..\common\i386\mc-a.asm:385: symbol `movdqu' redefined
..\..\common\i386\mc-a.asm:385: parser: instruction expected
..\..\common\i386\mc-a.asm:386: symbol `movdqu' redefined
..\..\common\i386\mc-a.asm:386: parser: instruction expected
执行 c:\winnt\system32\cmd.exe 时出错.锋寒 发表于2006年3月16日 17:16:00  IP:举报回复删除
我用的版本是x264-050530,555~~莫名其妙的问题.ever 发表于2006年3月16日 21:34:00  IP:举报回复删除
谢谢李老师的指导!
这样说的话,我想把264移植到dsp上是不是用jm更简单些了(它里面没有汇编吧?) 呵呵,不太确定。。。
===
THANK YOU VERY MUCH!!!李世平 发表于2006年3月18日 14:59:00  IP:举报回复删除
to study:
不能工作,以后估计也不会开发。
我在x264基础上增加了解码的功能,目前支持baseline,我有考虑开源的想法,关键是发展这个源码,而不只是公开。因为我现在正在忙毕业论文的事,所以要过段时间做个调查。鏉庝笘骞?Url= 发表于2006年3月18日 15:06:00  IP:举报回复删除
to guanchanghui:
1。运行库的问题,这个是因为mfc在用single thread和multi thread的时候,所用的标准库不一样导致。我估计你是做了一个mfc的程序(对话框,或者单文档之类的)去调用t264的库。解决方法:将t264库的工程设置成multithread,再重新编译就可以了。
2。t264和x264的比较:首先,我不明白你指的pc移植是什么样的概念?本来两个程序都可以在pc上跑的。x264和t264相比,我个人觉得推荐x264,理由有二:1)x264还在发展,2)blog上有我做的一个评测,x264编码性能优于t264李世平 发表于2006年3月18日 15:08:00  IP:举报回复删除
to zhoulingj:
这个错误没见过。怎么会有这句:
执行 c:\winnt\system32\cmd.exe 时出错.
你用的是vc6 or .net?李世平 发表于2006年3月18日 15:10:00  IP:举报回复删除
to ever

x264里面的汇编函数全都有对应纯c的实现李世平 发表于2006年3月18日 15:15:00  IP:举报回复删除
to 锋寒:
可能是sp6的问题,只是可能。
因为我用的是sp5tonycat 发表于2006年3月20日 13:11:00  IP:举报回复删除
现在做一个H.264的项目,是对视频文件进行编码->无线传输->解码的,已经做了H.264的编解码(vc7.0),但只能对.yuv格式的,而且是调用x264.exe完成的。这样的I/o操作比较频繁,我想直接在我的工程里面引用libx264的函数,但是现在出现这样的问题:(我下载的是x264-060315)

我在我自己的工程的stdafx.h文件中,如下处理:
1.
#pragma comment(lib, "../../lib/libx264.lib")
extern "C"
{
#include "common/common.h"
}

2.在我的工程属性->附加目录添加了引用
common;../x264;../x264/extras

3.我在自己的工程中的类中定义
private:
x264_picture_t m_Pic;
x264_t *h;
x264_param_t param;
然后,在后面的程序中使用这些成员变量

但是在编译的时候common/common.h总是出问题:

f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(320) : error C2061: 语法错误 : 标识符“luma16x16_dc”
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(320) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(321) : error C2061: 语法错误 : 标识符“chroma_dc”
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(321) : error C2535: “int x264_t::__unnamed::DECLARE_ALIGNED(int)” : 已经定义或声明成员函数
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(320) : 参见“x264_t::__unnamed::DECLARE_ALIGNED”的声明
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(321) : warning C4183: “DECLARE_ALIGNED”: 缺少返回类型;假定为返回“int”的成员函数
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(323) : error C2061: 语法错误 : 标识符“luma8x8”
f:\DotNetDemo\EnDecoderVideo\src\X264\common\common.h(323) : error C2535: “int x264_t::__unnamed::DECLARE_ALIGNED(in李世平 发表于2006年3月20日 21:32:00  IP:举报回复删除
to tonycat:
问题主要是c和c++混合编程的问题。
因为我也做过类似的工作,所以我说说我的实现思路,供你参考。
我的思路的原则:利用已有的,用api函数的方式。
1。工程设置就跟你的差不多
2。然后把x264.c直接拷贝到mfc工程中。
3。然后对x264.c进行简单修改,main函数删掉,对encode函数进行简单的改造。
4。mfc中的类,调用encode(),如果你有其它的要操作x264lib的地方,全都再x264.c中写函数,然后mfc类再调用这个函数。
tonycat 发表于2006年3月20日 22:09:00  IP:举报回复删除
哈哈,衷心感谢李老师的指导!呵呵,问题解决了。谢谢你提供的思路.......tonycat 发表于2006年3月20日 22:10:00  IP:举报回复删除
李老师,看你的照片!好像我的一个好朋友哦!太像了,呵呵hony 发表于2006年3月21日 17:25:00  IP:举报回复删除
顺利编译成功,实在太感谢了,想用来写一个视频软件。skysun 发表于2006年3月21日 17:43:00  IP:举报回复删除
李老师你好,看了你的Blog,我爱慕不已,看了一下午没有停下,深感 你的学识之渊博,令我钦佩。
我现在要学习mpeg-4方面的知识,实现对mpeg-4标准产生的视频文件进行基于内容的检索,以前做过对mpeg-1视频文件的检索,但我对mpeg-4这块一点不懂,网上看的东西乱其八糟,没有完整的概念,在这方面能给点意见吗?真诚期待你的回复,谢谢你。可以给我发邮件:rsmcm@163.com李世平 发表于2006年3月22日 14:43:00  IP:举报回复删除
to skysun:
过奖了,
我本人对h.26x系列比较熟悉,对于mpeg-4也只有一点接触而已。基于内容的多媒体检索,我倒学过这门课,也知道些基本思路。我觉得既然你做过mpeg-1视频文件的检索,不管你关键帧的检索是采用颜色,形状或者纹理什么的,这都是解码之后的。现在要转到mpeg-4上做,一定要做出新意,就是要采纳其基于对象的编码思路。这样工作会分为两方面,一个是基于对象的mpeg-4码流生成,目前的mpeg-4码流都是没有采用对象分割的,我估计你要自己动手做,看看我网站上提供的ms mpeg4 source。二者就是利用对象信息进行关键帧提取,shot,shot group等等处理uy 发表于2006年3月23日 9:24:00  IP:举报回复删除
我的是安装了VS6+SP6的,怎么解决啊
没有那种64位整数数据类型
--------------------Configuration: libx264 - Win32 Debug--------------------
Compiling...
macroblock.c
me.c
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(107) : warning C4018: '<' : signed/unsigned mismatch
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(124) : warning C4018: '<' : signed/unsigned mismatch
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(151) : warning C4018: '>' : signed/unsigned mismatch
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(152) : warning C4018: '>' : signed/unsigned mismatch
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(153) : warning C4018: '<' : signed/unsigned mismatch
D:\wuzhong\x264Peter\PeterLee\encoder\me.c(154) : warning C4018: '<' : signed/unsigned mismatch
ratecontrol.c
D:\wuzhong\x264Peter\PeterLee\encoder\ratecontrol.c(206) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
D:\wuzhong\x264Peter\PeterLee\encoder\ratecontrol.c(294) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
D:\wuzhong\x264Peter\PeterLee\encoder\ratecontrol.c(339) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
D:\wuzhong\x264Peter\PeterLee\encoder\ratecontrol.c(403) : warning C4244: '=' : conversion from 'int ' to 'float ', possible loss of data
D:\wuzhong\x264Peter\PeterLee\encoder\ratecontrol.c(408) : warning C4244: '=' : conversion from 'int ' to 'float ', possib李世平 发表于2006年3月24日 9:22:00  IP:举报回复删除
to uy:
sp6问题待我毕业论文写完再调试,过两个星期吧。rain 发表于2006年3月26日 11:00:00  IP:举报回复删除
vc+sp6的还是要装SP5,否则VCPP5没法装,我的就这样,现在都编译通过了李世平 发表于2006年4月2日 19:07:00  IP:举报回复删除
vcpp安装了吗?AWATER 发表于2006年4月18日 21:09:00  IP:举报回复删除
李世平:
你好,近来一直在做264相关的咚咚,非常感谢你能在此方面给我非常多的指导,看到你在blog说可以用wincvs 从sourceforge下载代码,尝试搞了一天没有结果,按照你说的我可以用SVN下载x264,也不是从sourceforge上下的,所以恳请你能给我些指导如何用wincvs 和svn 从sourceforge down代码,我的联系方式guanchanghui@gmail.com李世平 发表于2006年4月19日 12:03:00  IP:举报回复删除
to AWATER:
这只是工具的使用,你看看帮助文档不就可以了。
source forge上的版本控制是cvs,所以用wincvs
svn是cvs工具的一个分支,或者说改进,x264的工程是用这个工具的,
所以两者是不同的。phyllis 发表于2006年4月29日 10:41:00  IP:举报回复删除
lihao李老师:
为什么我安装了sp5和vcpp之后还会出现这样的错误了?

./..\common/common.h(348) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(348) : error C2059: syntax error : '('
../..\common/common.h(349) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(349) : error C2059: syntax error : '('
../..\common/common.h(351) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(351) : error C2059: syntax error : '('
../..\common/common.h(354) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(354) : error C2059: syntax error : '('
../..\common/common.h(355) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(355) : error C2059: syntax error : '('
../..\common/common.h(434) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(434) : error C2059: syntax error : '('
../..\common/common.h(435) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(435) : error C2059: syntax error : '('
Generating Code...
执行 cl.exe 时出错.

恳请指导!谢谢!李世平 发表于2006年5月6日 14:36:00  IP:举报回复删除
重新安装或者在其它机器上试试king  发表于2006年5月18日 10:55:00  IP:举报回复删除
李老师您好
我现在在做关于h.264的错误掩盖算法的毕业设计.需要一个错误的码流看效果,请问,如何才能制作一个错误的码流啊?

或者谁有合适的H。264错误码流,能否提供一个?
谢谢了
我的邮箱是jinxing2202@126.com
QQ34668610

也希望各位大虾给点建议啊感激中--snow 发表于2006年5月22日 9:25:00  IP:举报回复删除
李老师,您好!
李世平 发表于2006-03-18 2:59 PM IP: 218.0.4.*
to study:
不能工作,以后估计也不会开发。
我在x264基础上增加了解码的功能,目前支持baseline,我有考虑开源的想法,关键是发展这个源码,而不只是公开。因为我现在正在忙毕业论文的事,所以要过段时间做个调查。

x264解码器的baseline能不能让我参考一下?我的email:nishui_xingzhou@163.com
007 发表于2006年5月22日 14:48:00  IP:举报回复删除
李大哥,我们最近也要开展264的工作,目前正在对选择什么样的开源代码进行调研,老师认为x264比较好做准备让我搞这个,我下载了你的x264代码20050530也进行了编译和运行,能够编码,码流也可以被JM解,但是我对x264还是存在以下几个问题,希望您能解答。
1.工程中只能编码,好像没有单独的解码器。这是VLC没有提供的对吗,x264就是一个免费的编码库对吗?(我们老师偏不信非要我再查查,我都无奈了……)他非要问那VLC中用什么解码264的呢~~
2.如前面有人问到的一样,这些工程中的相关块作了汇编优化,有没有纯c的阿,你提供的版本里都是有汇编优化的,如果要用纯c的版本是需要下载别的版本,还是修改相关的宏定义就OK了
3.你的x264baseline解码是怎么做的阿,从x264工程中提取的吗?如果可以的话,能否发给我一份wangminyue0517@sohu.com,如果不方便,那么提取的工作难度大吗?
4.T264解码器只能解码T264编码的码流吗?这么差劲,太不靠谱了吧~~~
谢谢回答:)007 发表于2006年5月22日 15:51:00  IP:举报回复删除
最后一个问题刚查到,有了答案:H264的德码流十分灵活,T264本身的解码器中一些NAL类型不能解码,但是它本身的编码器不产生这些NAL类型,而它编码出的码流又是符合标准码流的。但是JM和性x264产生的码流中包含的NAL类型较多,所以T264不能对其正确进行解码。这种说法 对吗?
snow 发表于2006年5月22日 20:38:00  IP:举报回复删除
007问的问题我也存在疑惑:是不是这样一来速度较快的t264解码器就不可能改造成x264的解码器了?李世平 发表于2006年5月23日 12:25:00  IP:举报回复删除
to king :
建议只对dct系数部分加入错误码流

to snow:
p264decoder是基于x264开发的,是一个开源项目,
这个星期就开始开放,请关注本blog
==
t264没有x264块

to 007 :
1.x264是中没有完整的解码其,在目前的播放器中,x264的码流是用ffmpeg来解的。
2。都有纯c的实现。在工程选项中,把mmx禁掉就可以了
3。请关注p264decoder,见上。007 发表于2006年5月23日 19:28:00  IP:举报回复删除
清楚了,谢谢您的回答!!!
这个平台真好:)对我的学习真是太有帮助了,谢谢这里所有的人
subos 发表于2006年5月25日 11:49:00  IP:举报回复删除
呵呵,也想基于x264 decoder,移植到嵌入式平台上。期待p264decoder早日发布。shierdian110 发表于2006年5月30日 19:20:00  IP:举报回复删除
李老师,我是菜鸟,问一个问题,怎么设置x264编码的参数呢?每次运行都进入help()函数里面?shierdian110 发表于2006年5月31日 9:20:00  IP:举报回复删除
昨天的问题搞定了。
我用x264编码,参数设置为 -o test.264 foreman_qcif.yuv 176x144

编码得到文件test.264。使用影音风暴和ffdshow播放,怎么说不认识这个东西呢?
san 发表于2006年6月8日 8:56:00  IP:举报回复删除
李老师
您好
我是一名学生,目前我在做简单的x264编码并传输的课题,我采用的是x264的vfw版,在directshow下使用,已经实现了当地储存,现在我想做传输,但我不知道提取x264(vfw)出来的h264码流并嵌到rtp中,希望李老师能指点一二.另外我对tonycat的提问(关于c和c++混合编程)很干兴趣.李老师能否说明更详细些,我比较菜,麻烦李李老师了.
我的油箱:highhill520@yahoo.com.cnkingoal 发表于2006年6月8日 18:38:00  IP:举报回复删除
to shierdian110,检查你的x264和ffdshow的版本号请问李老师头文件<inttypes.h>在哪里下啊 发表于2006年6月20日 22:50:00  IP:举报回复删除
我用的是AVR单片机,编译器是ICCAVR,编译时提示找不到头文件<inttypes.h>,不知从哪里下载到

谢谢sunmi 发表于2006年6月21日 10:49:00  IP:举报回复删除
李老师:
您好!我现在在做jm86的移植,想请教你一个问题,就是移植到ccs上后,编译链接都没错误了,可是在执行到encode_one_frame->ReadOneFrame-> if (fseek (p_in, framesize_in_bytes, SEEK_CUR) != 0) 的时候就出现错误,就是fseek不成功,请问这是什么原因呢?谢谢指点fragile 发表于2006年6月27日 11:59:00  IP:举报回复删除
我想问一下nasm从哪下载硬件猪 发表于2006年6月29日 14:50:00  IP:举报回复删除
李老师,我是做hardware CODEC的,在decoder的运动补偿里要对外部存储器进行大量的读写,这在JM里有什么体现呢?还是存在哪个变量里,我要把这个变量记录下来,安排存储?谢谢!锋 发表于2006年7月6日 15:07:00  IP:举报回复删除
x264默认的编译方式是按照c语言来编译的,这样生成的lib如果在C++的工程里面调用起来总是出现一些莫名其妙的错误。如果给x264改为按C++编译,很多汇编写的函数都找不到了。不知到有没有人也遇到过类似的问题?jaycee 发表于2006年7月13日 19:33:00  IP:举报回复删除
李老师,请问X264的解码输入文件在哪里设置啊,象JM的代码至少还有一个configure这样的配置文件,X264里面是不是也有啊,我没有找到,wanglg 发表于2006年7月16日 19:50:00  IP:举报回复删除
李老师,您好!请问在RTP header中H264 的RTP payload type的值是什么?在rfc3984中看到一句“The assignment of a payload type has to be performed either through the profile used or in a dynamic way”,不过不明它的意思。
Easyer 发表于2006年7月19日 14:40:00  IP:举报回复删除
李老师,下载了你的x264-060530和P264Decoder代码编译后出现底下这类错误提示:
E:\1.___H.264\源码\x264-060530\encoder\macroblock.c(382) : fatal error C1600: unsupported data type
不知道是什么原因引起的,帮忙解释一下,谢谢!kennes 发表于2006年7月21日 9:39:00  IP:举报回复删除
您好,我下了你的X264,发现DEC中的decoder.c中第33行结果体x264_t没有定义完整,编译起来出了很多错误,能否帮忙解决一下,谢谢!李世平 发表于2006年7月26日 13:36:00  IP:举报回复删除
inttypes.h是linux下的文件

to sunmi:
ccs平台我不了解。

to fragile :
nasm.exe可以从下面的网址下载
x264decoder.zj.com

to 硬件猪:
主要是img全局变量,还有存放参考帧的缓冲区dbp

to 锋 :
你说的c编译和c++编译是怎样区别的?

to jaycee :
x264不支持解码,
可参考p264decoder

to wanglg:
h.264 rtp type=98

to Easyer:
应该是vc6补丁没有安装的原因

to kennes :
请给出具体错误
小油 发表于2006年7月26日 16:06:00  IP:举报回复删除
李老师,我现在想用JM做解码播放。已经将ldecod.c改为ldecod.cpp,并编译通过,以方便今后使用。我想实现播放功能,是不是一定要将yuv转为rgb,然后再显示。
目前,我的问题是,我不知道从哪里对yuv数据进行提取。也就是说我不是很清楚yuv数据是哪块?能不能指点我一下。Easyer 发表于2006年7月27日 11:54:00  IP:举报回复删除
李老师,上次你跟我说的VC6补丁没有安装,但是我已经从微软官网下载了VS6SP6安装了。至于你说的VC6补丁是指什么?李世平 发表于2006年8月3日 11:02:00  IP:举报回复删除
to 小油 :
解码是要将解码图像写入的文件中去的,你就可以从这点入手找。
在output.c的write_picture()函数就是这个功能。

to Easyer :
安装SP5
李世平 发表于2006年8月3日 11:04:00  IP:举报回复删除
to 小油 :
解码是要将解码图像写入的文件中去的,你就可以从这点入手找。
在output.c的write_picture()函数就是这个功能。

to Easyer :
安装SP5
李世平 发表于2006年8月3日 11:05:00  IP:举报回复删除
to 小油 :
解码是要将解码图像写入的文件中去的,你就可以从这点入手找。
在output.c的write_picture()函数就是这个功能。

to Easyer :
安装SP5
Tony REN 发表于2006年8月4日 3:03:00  IP:举报回复删除
这个问题有人在这里问过,我还是没有找到办法解决:

Assembly "..\..\common\i386\quant-a.asm"
..\..\common\i386\quant-a.asm:36: fatal: unable to open include file `i386inc.asm'
Error executing c:\windows\system32\cmd.exe.李世平 发表于2006年8月4日 9:22:00  IP:举报回复删除
to Tony REN:
这个是因为quant-a.asm等函数包含了i386inc.asm
quant-a.asm的自定义编译选项中加入相应相对的路径就可以了。
具体可查看nasm的参考手册Easyer 发表于2006年8月4日 9:30:00  IP:举报回复删除
李老师,在用您提供的p264decoder做解码器进行实时视频解码实现调试过程中,在同一地方会出现如下类似的错误:
e:\1.___h.264\mashcode_p264decoder\mashcode\codec\p264decoder\core\clip1.h(66) : error C2054: expected '(' to follow 'inline'
e:\1.___h.264\mashcode_p264decoder\mashcode\codec\p264decoder\core\clip1.h(67) : error C2085: 'p264_mc_clip1' : not in formal parameter list
e:\1.___h.264\mashcode_p264decoder\mashcode\codec\p264decoder\core\clip1.h(67) : error C2143: syntax error : missing ';' before '{'

请问这是由于什么引起的呢?我该如何进行解决呢?谢谢!MQL 发表于2006年8月6日 1:12:00  IP:举报回复删除
我想直接在我的工程里面引用libx264的函数,但是现在出现这样的问题:
1.我将加入了x264.h,然后将x264.C里面关于编码的函数放到我定义的一个编码类里面
我没有引用common.h

2.我在自己的工程中的类中定义
private:
x264_picture_t m_Pic;
x264_t *h;
x264_param_t param;

这样编译是可以通过,但是 x264_t这个结构是在common.h里面定义的,所以运行的话,我发现h变量总是没有申请成功

因为common.h里面又引用了一对其他的h文件,如果引用的话就必须全部应用,如何解决呀?
Easyer 发表于2006年8月8日 15:40:00  IP:举报回复删除
李老师,你的p264decoder中pps和sps是怎么进行赋值的呢?
我现在用你的这个解码器做实时视频解码是否可以呢?sea 发表于2006年8月11日 23:41:00  IP:举报回复删除
李老师,我编译你的最新的版本,怎么回出现以下的错误啊?
--------------------Configuration: libx264 - Win32 Debug--------------------
Assembly "..\..\common\i386\quant-a.asm"
nasm: error: more than one input file specified
nasm: error: more than one input file specified
nasm: error: more than one input file specified
nasm: error: more than one input file specified
type `nasm -h' for help
Error executing c:\windows\system32\cmd.exe.

libx264.lib - 4 error(s), 0 warning(s)
--------------------Configuration: libx264 - Win32 Debug--------------------
Assembly "..\..\common\i386\quant-a.asm"
nasm: error: more than one input file specified
nasm: error: more than one input file specified
nasm: error: more than one input file specified
nasm: error: more than one input file specified
type `nasm -h' for help
Error executing c:\windows\system32\cmd.exe.

x264.exe - 4 error(s), 0 warning(s)

nasm下载你网站上的,环境是xp+sp2下,vc6+sp5+vcpp,编译5月份的一个版本都成功的。不知道这次怎么会出现那个什么cmd.exe是什么意思sea 发表于2006年8月11日 23:45:00  IP:举报回复删除
问题解决了,我放到一个文件夹名带空格的文件夹下了,换个文件夹就好了。

这个错误就是李老师该页的第一条。谢谢李老师!JiNnGo 发表于2006年8月15日 11:29:00  IP:举报回复删除
李老师您好:
我目前在做H264的解码方面的工作,准备IPP和VLC各自做一套解码。但是intel几乎没有提供IPP方面的技术支持,网上的文章也很少,在编译simple_player的时候通不过,h264的解码lib已经有了,但是找不到应用lib的demo,不知道您有没有这方面的资料;VLC是开源的,但是都是源码,没有现成的lib可以调用,文件太多,我也没在哪个文件里看到怎么去调用264的解码。如能在这方面给一些指点,小弟感激不尽。我的邮件:hongjinger@163.com,我也会每天打开您的专栏来看看的QQ 发表于2006年8月17日 15:18:00  IP:举报回复删除
你好,我想请问一下,你那边有没有X264的纯C语言版本(我要把X264移植到DSP芯片上),如果有能否告诉我一个地址或者发一个给我,谢谢
zq20921@163.comfree 发表于2006年8月31日 14:59:00  IP:举报回复删除
我在vc6.0下编译生成了x264.exe,但在执行 x264 -o out.264 in.yuv 时没能执行成功 只生成了0字节的out.264文件。liuhaifan 发表于2006年9月5日 0:22:00  IP:举报回复删除
to free:

好像最后要加上width x height吧。中间是小写字母xRay 发表于2006年9月4日 23:34:00  IP:举报回复删除
最近在弄这个,请问:
quant-a.asm的属性我这么设置了:nasm -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)
但是还是这样的问题Assembly "..\..\common\i386\quant-a.asm"
请问应该怎么解决啊........
非常感谢了Ray 发表于2006年9月15日 22:09:00  IP:举报回复删除
请问,前辈,我如果要在本地端口8080输出编码的264视频流,应该怎么办,是否需要改写源代码?
谢谢了鏉庝笘骞?Url= 发表于2006年9月18日 21:38:00  IP:举报回复删除
TO Ray :
我如果要在本地端口8080输出编码的264视频流

是不是HTTP协议?DAVINCI 发表于2006年9月20日 10:27:00  IP:举报回复删除
我也想要纯c的x264版本,哪里有啊?Susan 发表于2006年9月20日 10:27:00  IP:举报回复删除
李老师:
我想请教一下。我在Batch Build里将libx264-Win32 Release, libx264-Win32 Debug, x264-Win32 Release和x264-Win32 Debug全都勾选上,编译了libx264和X264,并产生可执行文件x264.exe.但执行x264.exe屏幕一闪而过,不能输入参数,这是为什么?怎么解决?谢谢!Susan 发表于2006年9月20日 19:41:00  IP:举报回复删除
李老师:
上次提的问题,我运行cmd,执行x264 -o test.264 foreman.cif 352*288, 但仍然调用Help()文件,执行后产生的test.264是空文件.这是为什么?请各位过客也帮忙解决一下.多谢!Susan 发表于2006年9月23日 9:16:00  IP:举报回复删除
上次我提的问题已经自己解决了。原因很简单,只要在工程设置选项中libx264和x264的Debug中参数设置一模一样就可以了。有同样问题的朋友可以参考一下。李世平 发表于2006年9月24日 16:01:00  IP:举报回复删除
to Susan and everyone:
x264 -o test.264 foreman.cif 352*288有错
352*288中间是小写的x,而不是乘号Ray 发表于2006年9月26日 21:11:00  IP:举报回复删除
是的,现在我准备从端口直接用HTTP协议把数据传输出去,请问前辈有没有好一点的方法呢,谢谢了Ray 发表于2006年9月26日 21:12:00  IP:举报回复删除
TO 鏉庝笘骞
是的,现在我准备从端口直接用HTTP协议把数据传输出去,请问前辈有没有好一点的方法呢,谢谢了
Ray 发表于2006年9月26日 21:14:00  IP:举报回复删除
TO
鏉庝笘骞?Url=

是的,现在我准备从端口直接用HTTP协议把数据传输出去,请问前辈有没有好一点的方法呢,谢谢了
李世平 发表于2006年9月29日 17:40:00  IP:举报回复删除
to Ray:

用HTTP协议的话,实现起来非常简单。用MFC的CInternetFile,和读本地文件一样简便。up2u 发表于2006年9月30日 12:04:00  IP:举报回复删除
怎么才能在DCT系数中加入错误
李老师能不给一些相关的文章和程序,让我学习一下.Ray 发表于2006年9月30日 11:02:00  IP:举报回复删除
谢谢前辈了,我试试。不懂的再请教前辈!Ray 发表于2006年10月11日 22:01:00  IP:举报回复删除
x264中8x8的运动估计的绝对误差和是不是保存在analysis.l0.me8x8[i8x8].cost中啊,请问李老师,我想根据sad来判断全零块,这个值不知道怎么保存下来,应该在x264_t中的mb单元加入新的参数吗?brendchan 发表于2006年12月3日 15:10:09  IP:举报回复删除
您好!请问如何用于实时视频采集的编码、解码?能给个说明/例子吗?谢谢了!sunshine1314 发表于2006年12月4日 10:03:23  IP:举报回复删除
to Joanna:运行x264 -o test.264 foreman.qcif 176x144 返回:x264 [error]: could not open input file 'foreman.qcif' ===文件路径不对sunshine1314 发表于2006年12月4日 10:05:29  IP:举报回复删除
to brendchan: 比较方便的方法是采用direstshow,封装成transform filter即可zong_yu 发表于2007年3月7日 0:44:01  IP:举报回复删除
李老師您好:
我遇到跟Tony REN一樣的问题有Assembly "..\..\common\i386\quant-a.asm"
..\..\common\i386\quant-a.asm:36: fatal: unable to open include file `i386inc.asm'
Error executing c:\windows\system32\cmd.exe.


李老師回覆的
"这个是因为quant-a.asm等函数包含了i386inc.asm
quant-a.asm的自定义编译选项中加入相应相对的路径就可以了。 "

請問要如何將quant-a.asm的自定义编译选项中加入相应相对的路径呢?謝謝.lonstar007 发表于2007年3月17日 19:45:47  IP:举报回复删除
李老师,你好,我编译时出现了以下问题,请问怎么办?
Assembly "..\..\common\i386\quant-a.asm"
'd:\mplay.com' 不是内部或外部命令,也不是可运行的程序
或批处理文件。nancychina208 发表于2007年3月22日 11:26:46  IP:举报回复删除
很感谢李老师,问题已解决,我们已能够在DSP上编码,PC端解码显示了,但是现在的问题是好像每次在PC端T264解码时,解码函数里定义了一个宏#define BUFFER_SIZE 4096,好像每次那个buffer里要凑足4096个字节才能解,我们客户端每次要等发送过来的数据要凑足4096个字节才能送去解码,我们能否每次只解一帧的数据呢?我们编码后的数据一帧大小都只有几k,有的P帧编码后传过来时只有36个字节,所以按照现有的做法的话,要凑足4096字节的话,就要等DSP端传,这个等待的时间浪费了,有没有好的解决办法呢?
盼望您的答复!nancychina208 发表于2007年3月22日 15:28:27  IP:举报回复删除
我以前看过MPEG4的源代码,那里面本来就是一帧一帧的编码解码的,以前公司做的项目也是每次编码一帧,然后把数据打包,通过网络发出去,然后在客户端解码一帧之后显示的,为什么这个T264的代码要改成那样的话,该怎么做呢?sunshine1314 发表于2007年3月24日 9:08:27  IP:举报回复删除
to nancychina208:
T264的test程序是针对本地文件存放的,这么做是因为需要在一次读取的buffer中找到一个完整的NALU。
针对网络应用的情况,可以采取你说的来一帧解一帧的办法,
但是,更普遍的方法,是建立码流缓冲区,故可参考T264原先的做法。另外,网络接收的数据包,如RTP包,包头中都有NAL类型的描述,所以在你接收的同时就可以进行NALU组合,而不需要找NALU的过程mminrong 发表于2007年4月2日 11:52:31  IP:举报回复删除
有下列问题,请帮我解释一下,谢谢

JM10。2中,解码程序中 read_and_store_CBP_block_bit 函数中


在int read_and_store_CBP_block_bit (Macroblock *currMB,
DecodingEnvironmentPtr dep_dp,
struct img_par *img,
int type)
函数中
bit = (y_dc ? 0 : y_ac ? 1 : u_dc ? 17 : v_dc ? 18 : u_ac ? 19 : 35);

0,1,17,18,19,35是如何的来的,能否解释一下


另外,本函数最后部分中 cbp_bit代表什么?能否举个例子,谢谢


if (cbp_bit)
{
if (type==LUMA_8x8)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+1));
currMB->cbp_bits |= (1<<(bit+4));
currMB->cbp_bits |= (1<<(bit+5));
}
else if (type==LUMA_8x4)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+1));
}
else if (type==LUMA_4x8)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+4));
}
else
{
currMB->cbp_bits |= ((int64)1<<bit);
}
}

 


在解码JM10。2中,下列列表如何得来,能否解释一下,谢谢

static const int maxpos [] = {16, 15, 64, 32, 32, 16, 4, 15, 8, 16};
static const int c1isdc [] mminrong 发表于2007年4月2日 11:52:40  IP:举报回复删除
有下列问题,请帮我解释一下,谢谢

JM10。2中,解码程序中 read_and_store_CBP_block_bit 函数中


在int read_and_store_CBP_block_bit (Macroblock *currMB,
DecodingEnvironmentPtr dep_dp,
struct img_par *img,
int type)
函数中
bit = (y_dc ? 0 : y_ac ? 1 : u_dc ? 17 : v_dc ? 18 : u_ac ? 19 : 35);

0,1,17,18,19,35是如何的来的,能否解释一下


另外,本函数最后部分中 cbp_bit代表什么?能否举个例子,谢谢


if (cbp_bit)
{
if (type==LUMA_8x8)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+1));
currMB->cbp_bits |= (1<<(bit+4));
currMB->cbp_bits |= (1<<(bit+5));
}
else if (type==LUMA_8x4)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+1));
}
else if (type==LUMA_4x8)
{
currMB->cbp_bits |= (1<< bit );
currMB->cbp_bits |= (1<<(bit+4));
}
else
{
currMB->cbp_bits |= ((int64)1<<bit);
}
}

 


在解码JM10。2中,下列列表如何得来,能否解释一下,谢谢

static const int maxpos [] = {16, 15, 64, 32, 32, 16, 4, 15, 8, 16};
static const int c1isdc [] mminrong 发表于2007年4月2日 11:59:14  IP:举报回复删除
在解码JM10。2中,下列列表如何得来,能否解释一下,谢谢

static const int maxpos [] = {16, 15, 64, 32, 32, 16, 4, 15, 8, 16};
static const int c1isdc [] = { 1, 0, 1, 1, 1, 1, 1, 0, 1, 1};

static const int type2ctx_bcbp[] = { 0, 1, 2, 2, 3, 4, 5, 6, 5, 5}; // 7 //for coded_block_flag
static const int type2ctx_map [] = { 0, 1, 2, 3, 4, 5, 6, 7, 6, 6}; // 8
static const int type2ctx_last[] = { 0, 1, 2, 3, 4, 5, 6, 7, 6, 6}; // 8 //for last_significant_coeff_flag
static const int type2ctx_one [] = { 0, 1, 2, 3, 3, 4, 5, 6, 5, 5}; // 7
static const int type2ctx_abs [] = { 0, 1, 2, 3, 3, 4, 5, 6, 5, 5}; // 7 //for coeff_abs_level_minus1
static const int max_c2 [] = { 4, 4, 4, 4, 4, 4, 3, 4, 3, 3}; // 9brendchan 发表于2007年4月3日 16:42:11  IP:举报回复删除
李老师,您好。
这个x264的编码是不是很占用资源阿,我现在用的电脑是p4 3.0G, 1G内存的,对一路视频352*288的,25祯/秒的压缩,解压,需要占用50-60%左右的CPU。
请问这正常吗?可有得设置优化?
brendchan 发表于2007年4月3日 16:46:09  IP:举报回复删除
???mminrong 发表于2007年4月4日 11:21:44  IP:举报回复删除
针对以下诸表,有下列问题,您是否能帮我解答,谢谢:
1) static const int pos2ctx_map8x4[]是如何得到的?
2) 根据pos2ctx_map2x4c,pos2ctx_map4x4c这两个表,色度有2×4 变换吗?
3) os2ctx_map2x4c[],pos2ctx_map4x4c[]表如何的来?
4) static const int* pos2ctx_map表中,位置是为什么是如此?

//--- zig-zag scan ---- //
static const int pos2ctx_map8x8 [] = { 0, 1, 2, 3, 4, 5, 5, 4, 4, 3, 3, 4, 4, 4, 5, 5,
4, 4, 4, 4, 3, 3, 6, 7, 7, 7, 8, 9, 10, 9, 8, 7,
7, 6, 11, 12, 13, 11, 6, 7, 8, 9, 14, 10, 9, 8, 6, 11,
12, 13, 11, 6, 9, 14, 10, 9, 11, 12, 13, 11 ,14, 10, 12, 14}; // 15 CTX
static const int pos2ctx_map8x4 [] = { 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 9, 8, 6, 7, 8,
9, 10, 11, 9, 8, 6, 12, 8, 9, 10, 11, 9, 13, 13, 14, 14}; // 15 CTX
static const int pos2ctx_map4x4 [] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14}; // 15 CTX
static const int pos2ctx_map2x4c[] = { 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}; // 15 CTX
static const int pos2ctx_map4x4c[] = { 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2}; // 15 CTX
static const int* pos2ctx_map [] = {pos2ctx_map4x4, pos2ctx_map4x4, pos2ctx_map8x8, pos2ctx_map8x4,
pos2ctx_map8x4, pos2ctx_map4x4, pos2ctx_map4x4, weilc 发表于2007年4月7日 10:09:27  IP:举报回复删除
Download the attachment file "i386inc.asm" and move it to "\build\win32" directory and everything will be OK.
sunshine1314 发表于2007年4月12日 21:37:35  IP:举报回复删除
TO mminrong:
bit = (y_dc ? 0 : y_ac ? 1 : u_dc ? 17 : v_dc ? 18 : u_ac ? 19 : 35);

0,1,17,18,19,35是如何的来的,能否解释一下
==
cbp代表的是4x4dct系数是否全零,全零块的cbp为0,否则为1。下面解释几个数字的含义:
0 亮度dc4x4块
1-16: 亮度宏块,对应16个4x4ac系数块
17, 18: u,v dc
19-34: 16个u
35- : 16个v
ps: yuv4:4:4的数据。

第二个问题的几张表我没有留意过。

TO brendchan
你用的是什么解码器呢?mminrong 发表于2007年4月20日 9:38:40  IP:举报回复删除
非常感谢!mminrong 发表于2007年4月20日 9:42:31  IP:举报回复删除
解码程序对img->MbaffFrameFlag==1有一下处理,能否解释一下改语句:

rFrameL = block_a.available ?
img->mb_data[block_a.mb_addr].mb_field ?
refPic[list][block_a.pos_y][block_a.pos_x]:
refPic[list][block_a.pos_y][block_a.pos_x] * 2:
-1;

程序源码如下:

if (img->mb_data[img->current_mb_nr].mb_field)
{
rFrameL = block_a.available ?
img->mb_data[block_a.mb_addr].mb_field ?
refPic[list][block_a.pos_y][block_a.pos_x]:
refPic[list][block_a.pos_y][block_a.pos_x] * 2:
-1;
rFrameU = block_b.available ?
img->mb_data[block_b.mb_addr].mb_field ?
refPic[list][block_b.pos_y][block_b.pos_x]:
refPic[list][block_b.pos_y][block_b.pos_x] * 2:
-1;
rFrameUR = block_c.available ?
img->mb_data[block_c.mb_addr].mb_field ?
refPic[list][block_c.pos_y][block_c.pos_x]:
refPic[list][block_c.pos_y][block_c.pos_x] * 2:
-1;
}
else //frame
{
rFrameL = block_a.available ?
img->mb_data[block_a.mb_addr].mb_field ?
refPic[list][block_a.pos_y][block_a.pos_x] >>1: //?
refPic[list][block_a.pos_y][block_a.pos_x] :
-1;
rFrameU = block_b.available ?
img->mb_data[block_b.mb_addflyingship23 发表于2007年4月25日 10:40:29  IP:举报回复删除
李老师:您好!
我的编译情况是,刚开始的错误是nasm没安装,当我把nasm.exe拷贝到vc98/bin下后,编译就出现如下信息(迷糊):
--------------------Configuration: libx264 - Win32 Release--------------------
Assembly "..\..\common\i386\quant-a.asm"
Assembly "..\..\common\i386\predict-a.asm"
Assembly "..\..\common\i386\pixel-sse2.asm"
Assembly "..\..\common\i386\pixel-a.asm"
Assembly "..\..\common\i386\mc-a2.asm"
Assembly "..\..\common\i386\mc-a.asm"
Assembly "..\..\common\i386\deblock-a.asm"
Assembly "..\..\common\i386\dct-a.asm"
Assembly "..\..\common\i386\cpu-a.asm"
Compiling...
analyse.c
../..\common/common.h(358) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(358) : error C2059: syntax error : '('
../..\common/common.h(359) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(359) : error C2059: syntax error : '('
../..\common/common.h(361) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(361) : error C2059: syntax error : '('
../..\common/common.h(364) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(364) : error C2059: syntax error : '('
../..\common/common.h(365) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(365) : error C2059: syntax error : '('
../..\common/common.h(444) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(444)sunshine1314 发表于2007年5月1日 23:09:34  IP:举报回复删除
to flyingship23 :
安装vcsp5, vcpp5williamdjj 发表于2007年5月3日 11:58:12  IP:举报回复删除
ask Peter Lee and everyone:
用x264 encoder编码yuv文件后生成的.264文件为什么要转换成.avi文件才能播放?在此站下载的x264-060805里有自带的播放器吗?
谢谢李老师和各位!
sunshine1314 发表于2007年5月4日 9:59:48  IP:举报回复删除
.264是纯视频数据,而avi, mkv等是文件格式,是容器,描述了音视频数据的存放结构,所以播放器支持的一般是后者。至于.264只是简单的视频流保存,不通用,但也可以进行播放。
有个解码插件可以直接播放.264文件,名字忘了,但x264-060805中没有,williamdjj 发表于2007年5月5日 15:04:56  IP:举报回复删除
to sunshine1314:
原来如此,谢谢.
to everyone:
另外,小弟正在看x264-060805的代码,感觉复杂庞大,上网查的x264代码分析与李老师改过的针对性不强.不知道哪位以前看过x264-060805并且加了注释的代码发给我一份好么?或者解析代码的资料也行.
email:
william_djj@126.com
先谢过各位!williamdjj 发表于2007年5月5日 15:44:36  IP:举报回复删除
原来如此,谢谢.
如果想在.264文件中加入音频文件,最后再作成视听文件一起播放,应该怎样做?williamdjj 发表于2007年5月5日 21:52:49  IP:举报回复删除
to sunshine1314:
原来如此,谢谢!
to everyone:
x264.exe编码后输出的是H.264 avc流,我想作成mp4文件有什么办法?
http://www.doom9.org/index.html?/mp4.htm有介绍,但为什么mp4box不能识别x264.exe 编码后的流?dongdaxuezi 发表于2007年5月10日 18:01:05  IP:举报回复删除
李老师,你好:
使用你提供的x264源代码,在我的VC6.0环境下编码的部分已经编译通过,我想请教一下在源代码中有解码(decoder)的文件夹的,怎样才能在编码之后进行相应的解码呢,还是解码这一部分现在还没有完成,有待进一步完善呢,或者是用什么相应的解码器工具可以预先的看一下解码后的结果?
劳驾
敬候回复sunshine1314 发表于2007年5月10日 23:03:12  IP:举报回复删除
to williamdjj:
avc转mp4的格式我没尝试过,不过有个avc2avi的工具,我用过,是OK的。
NOTE: 装一下阿飞的音视频解码包就有这个工具了。

dongdaxuezi:
解码器有:ffmpeg, jm, p264decoder(支持还不全),等
具体可以参见下面的帖子:
H.264开源解码器评测
http://blog.csdn.net/sunshine1314/archive/2006/05/08/712401.aspxsunshine1314 发表于2007年5月10日 23:03:59  IP:举报回复删除
to williamdjj:
avc转mp4的格式我没尝试过,不过有个avc2avi的工具,我用过,是OK的。
NOTE: 装一下阿飞的音视频解码包就有这个工具了。

dongdaxuezi:
解码器有:ffmpeg, jm, p264decoder(支持还不全),等
具体可以参见下面的帖子:
H.264开源解码器评测
http://blog.csdn.net/sunshine1314/archive/2006/05/08/712401.aspxwilliamdjj 发表于2007年5月11日 12:55:48  IP:举报回复删除
to sunshine1314:
thank you!
我也用过avc2avi.exe,但是它不能把独立的音频文件和视频文件合成音视频文件,所以我才求助于mp4box。mp4box官方文档说其支持.264流,但avc2avi.exe编码后明明是.264,是不是264流又分多种不兼容的呢?
to everyone:
vop就是一帧或多帧中的物体或场景对象,但编码前究竟是怎样在一帧中识别出物体vop和背景vop的呢?因为只有先把它们识别开才能分别编码。查了很多资料好像都没说清。
sunshine1314 发表于2007年5月11日 23:04:33  IP:举报回复删除
回复 williamdjj:vop是mpeg4中的概念,事实目前常用的mpeg4 codec都没有实现基于对象的VOP,现在的处理是整帧是一个VOP
dongdaxuezi 发表于2007年5月11日 20:37:44  IP:举报回复删除
To sunshine1314
原来是这样啊,那我试试先,谢谢~~~~dongdaxuezi 发表于2007年5月11日 21:06:45  IP:举报回复删除
To 李老师和各位仁兄:
我是新手啊,近来一直苦于没用相应的X264的解码源码啊,好像哪位仁兄的手里已经有了,能不能同情一下小弟,给俺也发一个解码的代码啊~~
劳驾各位仁兄了!!
邮箱:jiaotianguang@163.commminrong 发表于2007年5月14日 9:40:53  IP:举报回复删除
pdecoder 与 Tdecoder的解码效率
每秒钟能解码QCIF多少张?
sunshine1314 发表于2007年5月16日 14:56:50  IP:举报回复删除
回复 mminrong:目前主流配置PC,<br />qcif: 1000fps左右<br />cif: 100-200fps
williamdjj 发表于2007年5月17日 23:39:11  IP:举报回复删除
请问李老师:
代码中的slice是怎样划分的?
结构体x264_param_t中的analyse.i_trellis是什么用的?
谢谢sunshine1314 发表于2007年6月26日 23:41:05  IP:举报回复删除
回复 williamdjj:x264代码中一个slice就是一帧。<br />analyse.i_trellis用于开启一种改进的量化机制,具体要看新的264标准文档。
williamdjj 发表于2007年5月21日 16:59:44  IP:举报回复删除
to everyone:
请问
x264.exe命令行运行中如果我不设DCT变换矩阵的大小,他默认是多大?
sunshine1314 发表于2007年6月26日 23:27:00  IP:举报回复删除
回复 williamdjj:默认是4x4整数变换。
dongdaxuezi 发表于2007年5月29日 10:03:50  IP:举报回复删除
借李老师的人气向大家推荐一个刚刚建立的群,专门用来X264的源代码分析 --8638558,希望各位前辈,同仁能够真诚的交流,学习~~
dongdaxuezi 发表于2007年5月29日 10:07:44  IP:举报回复删除
借李老师的人气向大家推荐一个刚刚建立的群,专门用来X264的源代码分析 --8638558,希望各位前辈,同仁能够真诚的交流,学习~~
PettyGu 发表于2007年5月30日 16:22:22  IP:举报回复删除
to everyone:
有人做过p264的代码移植么?
为什么我用lib264.lib+p264.h重新写解码文件
lib库中的函数不能直接调用?
告错:error LNK2001: unresolved external symbol "struct p264_t * __cdecl p264_decoder_open(struct p264_param_t *)"

有哪位大侠可以指点一二么?sunshine1314 发表于2007年6月26日 23:51:39  IP:举报回复删除
回复 PettyGu:需要把lib工程.h文件的目录设置到新工程选项中。
lihyit 发表于2007年7月25日 22:47:01  IP:举报回复删除
李老师你好:
我下载的x264-060805版本 在VC6.0环境下编译没有出错,但是我运行x264 -o test.264 foreman.cif 352x288,返回的信息是x264 [error]:No output file. Run x264 --help for a list of options. 我刚刚接触x264不懂哪里的问题,请李老师和各位知道者多多指教,谢谢!lihyit 发表于2007年7月25日 23:00:25  IP:举报回复删除
我用的是x264-060805 在VC6.0下编译没有错误,但运行
x264 -o test.264 foreman.cif 352x288时,返回了x264 [error]: No output file.Run x264 --help for a list of options.请李老师和各位多多指教,这是为什么啊? 谢谢!sunshine1314 发表于2007年7月26日 23:31:38  IP:举报回复删除
回复 lihyit:note: 一般显示是can't open output file, 显示成no output file 我还没见过。<br />however, 你可以检查一下test.264文件是否被占用,或者换一个其它名称试试
小刚 发表于2007年10月15日 11:45:56  IP:举报回复删除
李老师,你好,为什么我的会出现下面的编译错误?好像什么都装了
--------------------Configuration: libx264 - Win32 Debug--------------------
Assembly "..\..\common\i386\predict-a.asm"
Assembly "..\..\common\i386\mc-a2.asm"
Assembly "..\..\common\i386\pixel-a.asm"
Assembly "..\..\common\i386\mc-a.asm"
Assembly "..\..\common\i386\dct-a.asm"
Assembly "..\..\common\i386\cpu-a.asm"
Compiling...
analyse.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
cabac.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
cavlc.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
encoder.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
eval.c
macroblock.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
me.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
ratecontrol.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
set.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
Generating Code...
Error exesunshine1314 发表于2007年11月17日 12:52:12  IP:举报回复删除
回复 小刚:可以把 frame.h 中 include 'inttypes.h' 的代码注释掉
小刚 发表于2007年10月15日 11:47:35  IP:举报回复删除
李老师,你好,为什么我的会出现下面的编译错误?好像什么都装了
--------------------Configuration: libx264 - Win32 Debug--------------------
Assembly "..\..\common\i386\predict-a.asm"
Assembly "..\..\common\i386\mc-a2.asm"
Assembly "..\..\common\i386\pixel-a.asm"
Assembly "..\..\common\i386\mc-a.asm"
Assembly "..\..\common\i386\dct-a.asm"
Assembly "..\..\common\i386\cpu-a.asm"
Compiling...
analyse.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
cabac.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
cavlc.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
encoder.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
eval.c
macroblock.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
me.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
ratecontrol.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
set.c
../..\common/frame.h(27) : fatal error C1083: Cannot open include file: 'inttypes.h': No such file or directory
Generating Code...
Error exebhl0916 发表于2007年10月17日 10:15:24  IP:举报回复删除
李老师,你好!关于x264里对于宏块mv的处理里设置了一个变量数组x264_scan8_size[6*8]视为何意?xzyue 发表于2007年10月19日 11:40:55  IP:举报回复删除
李老师,您好!
我在linux下用mplayer播放器可以正常的播放X264编码出来的264文件,但是却播放不出JM编码出来的264文件,提示数据格式不正确,请问这两种264文件格式有什么差别吗?sunshine1314 发表于2007年11月17日 12:56:49  IP:举报回复删除
回复 xzyue:x264支持的选项是h.264标准的一个子集,可能是JM开启了x264之外的选项。
sunshine1314 发表于2007年11月17日 12:54:50  IP:举报回复删除
回复 xzyue:x264支持的选项是h.264标准的一个子集,可能是JM开启了x264之外的选项。
sunshine1314 发表于2007年11月17日 12:54:30  IP:举报回复删除
回复 xzyue:x264支持的选项是h.264标准的一个子集,可能是JM开启了x264之外的选项。
xzyue 发表于2007年10月19日 11:46:18  IP:举报回复删除
验证过两个264文件在windows下都能正常播放的。
那JM编码的264文件在linux有什么其他的工具可以播放吗?xzyue 发表于2007年10月19日 11:47:33  IP:举报回复删除
验证过两个264文件在windows下都能正常播放的。
那JM编码的264文件在linux有什么其他的工具可以播放吗?mountainhigh 发表于2007年10月19日 16:34:26  IP:举报回复删除
李老师你好,我下载了您提供的x.264源代码,版本日期是060805,我debug编译,链接,执行均没有问题。

不过我在vc6中debug时,总在函数Parse()的中返回-1,从而退出main().具体是执行到

Parse()中的getopt_long()中的getopt_internal()中的下面语句是退出:
if (!PERMUTE) {
/*
* if no permutation wanted, stop parsing
* at first non-option
*/
return -1;
}

我用同样的参数在命令行下执行就可以正常执行,而单步调试就不可以,奇怪?

请问这是什么原因呢?

mountainhigh1979@yahoo.com.cnsunshine1314 发表于2007年11月17日 12:58:03  IP:举报回复删除
回复 mountainhigh:应该是参数的问题,还是仔细检查一下
mountainhigh 发表于2007年10月22日 16:06:57  IP:举报回复删除
呵呵,问题解决了。不过我最近在看x264代码,没有文档,看得很费劲。请问有没有哪位高手总结些资料或文档出来呀?最好是有关程序流程哪种的xiaoweihuacom 发表于2007年11月3日 10:33:05  IP:举报回复删除
李老师,最近想测试直接打包为mp4文件,x264单独编译,执行都没有问题,但如果#define MP4_output后,就不行了.我已经下载了最新版的gpac,并且编译生成了静态库文件libgpac_static.lib,在编译x264时已经设置连接了这个库.但还是报了一堆错.
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __assert already defined in LIBCD.lib(assert.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fread already defined in LIBCD.lib(fread.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _ftell already defined in LIBCD.lib(ftell.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fseek already defined in LIBCD.lib(fseek.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fopen already defined in LIBCD.lib(fopen.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fgetc already defined in LIBCD.lib(fgetc.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _realloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fwrite already defined in LIBCD.lib(fwrite.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __isctype already defined in LIBCD.lib(isctype.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fflush already defined in LIBCD.lib(fflush.obj)
MSVCRTD.lib(Msunshine1314 发表于2007年11月17日 13:04:18  IP:举报回复删除
回复 xiaoweihuacom:从编译错误来看是编译选项的问题,将父工程和依赖工程的编译选项中的,code generation,选用同样的多线程方式,一般就可以解决。
周允 发表于2007年11月14日 15:51:38  IP:举报回复删除
李老师:
您好!
我刚刚接触x264,编译通过了,可运行的时候总是
x264[error] Rawyuv input requires a resolution
但是我在Project->Setting 中设置了参数的:
-o test.264 foreman.yuv 176 144
不知道是什么原因?

注:我用的是x264-060805版本.

谢谢了sunshine1314 发表于2007年11月17日 13:05:10  IP:举报回复删除
回复 周允:-o test.264 foreman.yuv 176 144<br />改成<br />-o test.264 foreman.yuv 176x144
zoie 发表于2007年11月20日 22:32:52  IP:举报回复删除
李老师好!

刚接触x264,编译libx264出现了59个error,1个warning,不太清楚原因,请指教!谢谢!
---------------------------
../..\common/common.h(358) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(358) : error C2059: syntax error : '('
../..\common/common.h(359) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(359) : error C2059: syntax error : '('
../..\common/common.h(361) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(361) : error C2059: syntax error : '('
../..\common/common.h(364) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(364) : error C2059: syntax error : '('
../..\common/common.h(365) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(365) : error C2059: syntax error : '('
../..\common/common.h(444) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(444) : error C2059: syntax error : '('
../..\common/common.h(445) : error C2485: 'align' : unrecognized extended attribute
../..\common/common.h(445) : error C2059: syntax error : '('
G:\H.264\x264-060805源码\x264-060805\common\i386\predict-c.c(455) : error C2485: 'align' : unrecognized extended attribute
G:\H.264\x264-060805源码\x264-060805\common\i386\predict-c.c(455) : error C2059: syntax error : '('
csp.c
G:\H.264\x264-060805源码\x264-060805\common\common.h(358) : error C2sunshine1314 发表于2007年12月15日 14:51:55  IP:举报回复删除
回复 zoie:是否安装了sp5或vcpp5<br />
Jessecw 发表于2007年11月21日 13:34:16  IP:举报回复删除
小弟最近才开始看x.264的源代码,发现程序中有一些地方用到了vector的一些操作,如:
#define vec_u8_t vector unsigned char
#define vec_s8_t vector signed char
#define vec_u16_t vector unsigned short
#define vec_s16_t vector signed short
#define vec_u32_t vector unsigned int
#define vec_s32_t vector signed int

#define vec_u16_to_u8(v) vec_pack( v, zero_u16v )
#define vec_s16_to_u8(v) vec_pack( v, zero_u16v )

#define vec_u8_to_u16_h(v) (vec_u16_t) vec_mergeh( zero_u8v, (vec_u8_t) v )
#define vec_u8_to_u16_l(v) (vec_u16_t) vec_mergel( zero_u8v, (vec_u8_t) v )
#define vec_u8_to_s16_h(v) (vec_s16_t) vec_mergeh( zero_u8v, (vec_u8_t) v )
#define vec_u8_to_s16_l(v) (vec_s16_t) vec_mergel( zero_u8v, (vec_u8_t) v )

  请问C语言里有vector, vec_pack和vec_mergeh,vec_mergel这样一些东东吗?这些东东的说明资料在哪里可以查到?
  
  谢谢李老师先.
Graham 发表于2007年11月26日 17:24:28  IP:举报回复删除
下面这个问题有人问过多次了,没有给出一个明确的解决方法。请解决了这个问题的朋友给个具体的方法吧。先谢过了!
使用的版本是060805;VC版本是vc6,已经安装了vsp6sp5和vcpp5,nasm也copy到安装目录的bin下了。

Assembly "..\..\common\i386\quant-a.asm"
Invalid keyboard code specified
..\..\common\i386\quant-a.asm:36: fatal: unable to open include file `i386inc.asm'
Error executing c:\windows\system32\cmd.exe.Graham 发表于2007年11月26日 17:25:20  IP:举报回复删除
下面这个问题有人问过多次了,没有给出一个明确的解决方法。请解决了这个问题的朋友给个具体的方法吧。先谢过了!
使用的版本是060805;VC版本是vc6,已经安装了vsp6sp5和vcpp5,nasm也copy到安装目录的bin下了。

Assembly "..\..\common\i386\quant-a.asm"
Invalid keyboard code specified
..\..\common\i386\quant-a.asm:36: fatal: unable to open include file `i386inc.asm'
Error executing c:\windows\system32\cmd.exe.graham1 发表于2007年11月26日 17:30:01  IP:举报回复删除
下面这个问题有人问过多次了,没有给出一个明确的解决方法。请解决了这个问题的朋友们给个具体的方法吧。先谢过了!
使用的版本是060805;VC版本是vc6,已经安装了vsp6sp5和vcpp5,nasm也copy到安装目录的bin下了。

Assembly "..\..\common\i386\quant-a.asm"
Invalid keyboard code specified
..\..\common\i386\quant-a.asm:36: fatal: unable to open include file `i386inc.asm'
Error executing c:\windows\system32\cmd.exe.xlhu3 发表于2007年11月28日 14:34:42  IP:举报回复删除
李老师,你好!最近在看你的p264解码器代码,想做一个移植工作。在i386文件夹下有几个asm文件,移植起来工作量比较大,p264有纯C的版本吗?xlhu3 发表于2007年11月28日 14:59:35  IP:举报回复删除
李老师,你好!最近在用看你的p264代码,想进行移植,i386文件夹下有一些asm文件,移植时有困难,p264有纯C的版本吗t264 发表于2007年12月9日 10:10:51  IP:举报回复删除
老师您好
Trouble running Target CPU: Invalid Source port address in the trp The Trp ignored .. QCOMP sent Source Address 0xffffffcf Requestor is CACHE
Can't Run Target CPU: SIM may not be in stable state, Advisable to correct the error before Running
对,这个是我运行t264源码之后
message信息
我的run应该是错误的
请问上面这个问题怎么解决

期待你的回答~~谢谢,期待中
songbin830 发表于2007年12月24日 14:25:32  IP:举报回复删除
李老师,你好!

错误信息:
libx264 error PRJ0019: A tool returned an error code from "Assembly d:\cord\x264-060805\common\i386\quant-a.asm"

vc7下的编译的
相对于[7] 工程转换造成的nasm编译错误进行了修改
但还是有上面的错误
nasm2.00
sunshine1314 发表于2008年1月9日 10:15:10  IP:举报回复删除
回复 songbin830:到p264decoder.zj.com下载nasm
soqu 发表于2008年1月6日 23:12:55  IP:举报回复删除
你好:
我在dos环境下运行程序无误,可以解码。但是当我用vc6进行调试的时候,发现在fopen(“test.264”,“rb”);处总是报错,返回值始终为零,请问这是为什么呢?谢谢。soqu 发表于2008年1月6日 23:13:46  IP:举报回复删除
你好:
我在dos环境下运行程序无误,可以解码。但是当我用vc6进行调试的时候,发现在fopen(“test.264”,“rb”);处总是报错,返回值始终为零,请问这是为什么呢?谢谢。soqu 发表于2008年1月6日 23:14:32  IP:举报回复删除
你好:
我在dos环境下运行程序无误,可以解码。但是当我用vc6进行调试的时候,发现在fopen(“test.264”,“rb”);处总是报错,返回值始终为零,请问这是为什么呢?谢谢。sunshine1314 发表于2008年1月9日 10:14:04  IP:举报回复删除
回复 soqu:调试的时候,当前工作目录是在project文档下,而不是debug文件夹下,你查查是否是路径的问题。建议test.264用绝对路径试试,用\\
wyq_sht 发表于2008年1月23日 20:18:20  IP:举报回复删除
李老师,我刚刚开始看X264,编译没有通过,出现错误:
error PRJ0019: A tool returned an error code from "Assembly e:\ma\h264\x264\common\i386\quant-a.asm"

error: no input file specified

我对照了你上面说的常见错误,但是改不过来,能给我解答一下吗?wyq_sht 发表于2008年1月23日 20:20:02  IP:举报回复删除
李老师,我刚刚开始看X264,编译没有通过,出现错误:
error PRJ0019: A tool returned an error code from "Assembly e:\ma\h264\x264\common\i386\quant-a.asm"

error: no input file specified

我对照了你上面说的常见错误,但是改不过来,能给我解答一下吗?
我的Emai:yanqin1104@163.comsunshine1314 发表于2008年2月17日 14:30:39  IP:举报回复删除
回复 wyq_sht:1.e:\ma\h264\x264\common\i386\quant-a.asm 文件路径是否准确<br /><br />2. 工程设置,检查custom build的设置是否准确
sunshine1314 发表于2008年2月17日 14:29:43  IP:举报回复删除
回复 wyq_sht:1.e:\ma\h264\x264\common\i386\quant-a.asm 文件路径是否准确<br /><br />2. 工程设置,检查custom build的设置是否准确
sylvia 发表于2008年2月19日 17:06:11  IP:举报回复删除
李老师,您好
我最近在程序中调用libx264.lib,总在链接的时候出现问题:
libx264.lib(common.obj):Error LNK2001: unresolved external symbol -strdup
libx264.lib(encoder.obj):Error LNK2001: unresolved external symbol -strdup
libx264.lib(ratecontrol.obj):Error LNK2001: unresolved external symbol -unlink


是什么问题呢xiaoping 发表于2008年2月21日 9:38:48  IP:举报回复删除
请问X264都实现了哪些功能?都知道JM是H.264的一个完全版本实现,X264是主要部分实现,那么X264有哪些实现了,哪些没有实现呢?还有算法做了哪些简化?wyq_sht 发表于2008年3月5日 18:44:59  IP:举报回复删除
谢谢您,解决了,是路径的问题T264 发表于2008年3月20日 23:31:15  IP:举报回复删除
借李老师的人气。
请研究T264代码的加入52908890。大家一起来研究。
谢谢易鼎 发表于2008年4月28日 14:28:37  IP:举报回复删除
您好!李老师:
我下载的x264源码,没有找到码率控制rdo.c文件,想问一下李老师x264里有码率控制吗?
我下的版本是:
2006.08.05(Rev.551)
both for vc6 and vc8!!!, both for debug and release compile mode
also vc6+intel c++ compiler 8.0
谢谢!

lius1984 发表于2008年4月29日 9:06:26  IP:举报回复删除
李老师好,我在编译x264时碰到个问题想向你请教。
libx264.dsw已编译通过并生成了libx264.lib. 在编译x264.dsw时出现如下错误,
我搜索到两答案不太明白 ,1.“需要把lib工程.h文件的目录设置到新工程选项中。"2."估计是工程里设的lib文件目录不对或者是lib文件名有出入"。我在project-settings-link里已经加了libx264.lib。在options-directories里也加了libx264.lib所在文件夹路径,错误依旧,还请指教,谢谢。

错误信息
libx264.lib(dct.obj) : error LNK2001: unresolved external symbol _x264_add16x16_idct8_mmx
libx264.lib(dct.obj) : error LNK2001: unresolved external symbol _x264_add8x8_idct8_mmx
bin/x264.exe : fatal error LNK1120: 8 unresolved externals
Error executing link.exe.lius1984 发表于2008年4月29日 10:42:36  IP:举报回复删除
李老师你好,我发现包含x264_add16x16_idct8_mmx 等函数的源文件dct-c.c 在x264里不存在,是版本问题吗? 是否我要下载有dct-c.c文件的版本?lius1984 发表于2008年4月29日 11:25:12  IP:举报回复删除
李老师你好,我在调试p264decoder发现,test.264总是不能正常读取,显示“open stream file:test.264 failed",这是怎么回事呢,还请指教,谢谢!jiang 发表于2008年7月2日 11:37:51  IP:举报回复删除
关于引用libx264.lib的方法,可是我在VC6.0下试了还是不行,在编译器中我只设置了:Automatic use of precompiled headers,还有就是在include目录下包含了x264库中的extras, common目录,总共报了102个错误, 好像是标识符inline不能识别,顺便我把引用的源代码也发你一份,但是不知道你的邮箱,要不你发给我你的邮件,我再把代码传给你,望你指导一下!jiang 发表于2008年7月15日 10:58:07  IP:举报回复删除
李老师你好,我在使用x264060805源代码编码时遇到内存泄漏的问题?找了半天也没有查出是哪儿泄漏了
你能提示一下吗?

其它兄弟遇到的也多指点一下吧, 谢谢!jiang 发表于2008年7月15日 11:00:40  IP:举报回复删除
李老师你好,我在使用x264060805源代码编码时遇到内存泄漏的问题?找了几天也没有进展,你能提示一下我吗?

其它兄弟知道的也可以提示一下.

我的邮箱是:myfirm@163.com
谢谢!luan 发表于2008年7月18日 21:39:21  IP:举报回复删除
李老师:
您好!
我想将T264的编码部分在DM642上运行,然后再通过网络传到主机解码显示。我把编码部分的文件操作去掉了,通过采样数据给数组提供数据,但在解码端总是出现 assert(t->mb.mb_mode_uv <= Intra_8x8_DC128);错误,不知道是那个地方有问题,恳请李老师指教。
我的邮箱是:chunxuluan@163.comsuzhounoman 发表于2009年2月11日 11:18:28  IP:举报回复删除
李大师:
您好!对您的才华我十分敬佩!我自己编译X264是通过了,但是使用的时候有点问题,不知您是否方便将您编译通过的代码发我一份。我的邮箱是huoyuankai@sina.com。万分感谢! 祝您牛年全家身体健康,万事如意!suzhounoman 发表于2009年2月11日 11:18:54  IP:举报回复删除
李大师:
您好!对您的才华我十分敬佩!我自己编译X264是通过了,但是使用的时候有点问题,不知您是否方便将您编译通过的代码发我一份。我的邮箱是huoyuankai@sina.com。万分感谢! 祝您牛年全家身体健康,万事如意!suzhounoman 发表于2009年2月11日 11:19:22  IP:举报回复删除
李大师:
您好!对您的才华我十分敬佩!我自己编译X264是通过了,但是使用的时候有点问题,不知您是否方便将您编译通过的代码发我一份。我的邮箱是huoyuankai@sina.com。万分感谢! 祝您牛年全家身体健康,万事如意!suzhounoman 发表于2009年2月11日 11:19:27  IP:举报回复删除
李大师:
您好!对您的才华我十分敬佩!我自己编译X264是通过了,但是使用的时候有点问题,不知您是否方便将您编译通过的代码发我一份。我的邮箱是huoyuankai@sina.com。万分感谢! 祝您牛年全家身体健康,万事如意!suzhounoman 发表于2009年2月11日 21:25:54  IP:举报回复删除
李老师:
您好~代码已经编译通过而且能出结果,但是在调试的时候一开始不论F5,还是F10都会进入汇编状态,连设断点也没有。我已经正确输入调试参数,不知道问题到底出在哪~?万分感谢!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunshine1314/archive/2005/12/20/557219.aspx

原创粉丝点击