Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C x264配置链接和生成问题_C_Linux_Build_Compilation_X264 - Fatal编程技术网

C x264配置链接和生成问题

C x264配置链接和生成问题,c,linux,build,compilation,x264,C,Linux,Build,Compilation,X264,为了将一系列jpg或png图像转换成mp4视频,我试图在Ubuntu 32位上从源代码构建x264 当我运行以下命令时,下载的二进制文件能够将序列转换为mkv视频(或其他几种格式): ./x264dist ~/Dev/x264emp/img/FLYOVER%4d.JPG -o abc.mkv x264dist是我从站点下载的二进制文件的重命名名称 但是,当我获取源代码并使用简单配置进行编译时: $。/configure--enable shared--enable static--enable

为了将一系列jpg或png图像转换成mp4视频,我试图在Ubuntu 32位上从源代码构建x264

当我运行以下命令时,下载的二进制文件能够将序列转换为mkv视频(或其他几种格式):

./x264dist ~/Dev/x264emp/img/FLYOVER%4d.JPG -o abc.mkv
x264dist
是我从站点下载的二进制文件的重命名名称

但是,当我获取源代码并使用简单配置进行编译时:

$。/configure--enable shared--enable static--enable pic

platform:      X86
system:        LINUX
cli:           yes
libx264:       internal
shared:        yes
static:        yes
asm:           yes
interlaced:    yes
avs:           avxsynth
lavf:          no
ffms:          no
mp4:           no
gpl:           yes
thread:        posix
opencl:        yes
filters:       crop select_every 
debug:         no
gprof:         no
strip:         no
PIC:           yes
bit depth:     8
chroma format: all
然后
$make
。然后,我使用二进制文件运行与上面完全相同的命令,但存在以下错误:

./x264 ~/Dev/x264emp/img/FLYOVER%4d.JPG -o abc.mkv
raw [error]: raw input requires a resolution.
x264 [error]: could not open input file `/home/tmd/Dev/x264emp/img/FLYOVER%4d.JPG' via any method!
它似乎根本无法读取任何输入。但至少我仍然能够在该二进制文件上运行
--help

然后我意识到下载的二进制文件是
3.5Mb
,而我的自定义编译结果是
1.5Mb
二进制文件

因此,我只想知道正式构建使用的构建配置是什么,和/或是否存在导致此问题的我缺少的任何依赖项

我之所以尝试构建自己,是因为我想使用Emscripten将x264库移植到Javascript中。有一个使用FFmpeg的解决方案,但似乎我不需要整个视频处理库,只需要一个简单的H264编解码器。因此,我需要解决配置/编译/链接问题,以便正确地移植它


可能类似

我认为您需要构建一个静态库或一个共享库,我不确定启用两者时会发生什么。

我认为您需要构建一个静态库或一个共享库,我不确定当您同时启用两者时会发生什么。

它无法读取您的输入,因为您在编译时没有lavf支持:
lavf:no
因此它只能将原始yuv和y4m文件作为输入(我怀疑您是否安装了avxsynth)

要使用lavf编译x264,您需要安装ffmpeg/libav库并位于gcc搜索路径中,或者您需要在配置中使用以下内容为它们提供路径:

--extra-cflags=“-I/usr/local/include”--extra-ldflags=“-L/usr/local/lib”


此外,您可能需要自己编译ffmpeg/libav,因为x264需要足够多的新库,并且可能拒绝使用预构建repos中的库。x264是使用ffmpeg/libav主分支的版本编写的,可能无法与不需要新API的稳定分支一起使用。因此,如果您认为您已经安装了所有需要的库,请查看config.log文件,找出x264拒绝与它们链接的原因。

它无法读取您的输入,因为您在编译时没有lavf支持:
lavf:no
,因此它只能将原始yuv和y4m文件作为输入(我怀疑您是否安装了avxsynth)

要使用lavf编译x264,您需要安装ffmpeg/libav库并位于gcc搜索路径中,或者您需要在配置中使用以下内容为它们提供路径:

--extra-cflags=“-I/usr/local/include”--extra-ldflags=“-L/usr/local/lib”


此外,您可能需要自己编译ffmpeg/libav,因为x264需要足够多的新库,并且可能拒绝使用预构建repos中的库。x264是使用ffmpeg/libav主分支的版本编写的,可能无法与不需要新API的稳定分支一起使用。因此,如果您认为您已经安装了所有需要的库,请查看config.log文件,找出x264拒绝与它们链接的原因。

实际上,我尝试了其中一个或两个,或者没有一个,结果都是1.5Mb/1.6Mb&无法使用的二进制文件。(不能使用任何东西,只能使用类似于./x264--help的东西。)实际上,我尝试了其中一个或两个,或者没有一个,它们都会产生1.5Mb/1.6Mb&无法使用的二进制文件。(不能使用任何东西,只能使用类似于./x264——帮助)非常感谢您提供的信息性答案。我从源代码安装了最新的libav。然后重建整个东西。结果现在是46Mb x264二进制文件。它能够构建图像序列。然而,与3.5Mb的官方版本相比,它太大了。为什么会这样?我接受你的回答。但是有什么方法可以让我得到接近3.5Mb独立官方版本的东西吗?首先确保编译ffmpeg/libav时没有调试信息(--disable debug)或去掉二进制文件。x264的官方版本也用UPX iirc压缩。太棒了!我试过了,二进制文件现在减少到11Mb(仍然比官方文件高一点)。然后我在mp4中使用l-smash(人们使用gpac,但我失败了)。事情进展顺利。很抱歉在这里成为一个noob,但是你所说的“strip the binary”是什么意思?我所说的“strip”是指使用or。如果你也不知道它是什么的话,请看这里。非常感谢你提供了信息丰富的答案。我从源代码安装了最新的libav。然后重建整个东西。结果现在是46Mb x264二进制文件。它能够构建图像序列。然而,与3.5Mb的官方版本相比,它太大了。为什么会这样?我接受你的回答。但是有什么方法可以让我得到接近3.5Mb独立官方版本的东西吗?首先确保编译ffmpeg/libav时没有调试信息(--disable debug)或去掉二进制文件。x264的官方版本也用UPX iirc压缩。太棒了!我试过了,二进制文件现在减少到11Mb(仍然比官方文件高一点)。然后我在mp4中使用l-smash(人们使用gpac,但我失败了)。事情进展顺利。很抱歉在这里成为一个noob,但是你所说的“strip the binary”是什么意思?我所说的“strip”是指使用or。如果你也不知道它是什么,这就是。