当前位置:首页 » 编程软件 » linuxx264编译

linuxx264编译

发布时间: 2023-08-10 04:44:37

1. FFmpeg-视频编码-YUV编码出H264

编码出来的h264数据可以直接使⽤ffplay播放

int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align);

函数的作⽤是通过指定像素格式、图像宽、图像⾼来计算所需的内存⼤⼩

重点说明⼀个参数 align :此参数是设定内存对⻬的对⻬数,也就是按多⼤的字节进⾏内存对⻬:

av_image_alloc()是这样定义的。此函数的功能是按照指定的宽、⾼、像素格式来 分配图像内存

int av_image_alloc(uint8_t *pointers[4], int linesizes[4], int w, int h, enum AVPixelFormat pix_fmt, int align);

int av_image_fill_arrays(uint8_t *dst_data[4], int dst_linesize[4], const uint8_t *src, enum AVPixelFormat pix_fmt, int width, int height, int align);

av_image_fill_arrays()函数 ⾃身不具备内存申请的功能 ,此函数类似于格式化已经申请的内存,即通过 av_malloc()函数申请的内存空间,或者av_frame_get_buffer()函数申请的内存空间。

av_image_fill_arrays()中 参数具体说明

视频码率是视频数据(包含视频⾊彩量、亮度量、像素量)每秒输出的位数。⼀般⽤的单位是kbps。

在视频会议应用中,视频质量和网络带宽占用是矛盾的,通常情况下视频流占用的带宽越高则视频质量也越高;如要求高质量的视频效果,那么需要的网络带宽也越大;解决这一矛盾的钥匙当然是视频编解码技术。评判一种视频编解码技术的优劣,是比较在相同的带宽条件下,哪个视频质量更好;在相同的视频质量条件下,哪个占用的网络带宽更少。
是不是视频码率越高,质量越好呢?理论上是这样的,然而在我们肉眼分辨的范围内,当码率高到一定程度,感觉没有什么差别。所以码率设置有它的最优值,H.264(也叫AVC或X.264)的文档中,视频的建议码率如下:

鉴于x264的参数众多,各种参数的配合复杂,为了使⽤者⽅便,x264建议如⽆特别需要可使 ⽤preset和tune设置。这套开发者推荐的参数较为合理,可在此基础上在调整⼀些具体参数以符合⾃⼰需要,⼿动设定的参数会覆盖preset和tune⾥的参数。

使⽤ ffmpeg -h encoder=libx264 命令查询相关⽀持的参数

x264是⼀个 H.264/MPEG4 AVC 编码器,本指南将指导新⼿如何创建⾼质量的H.264视频。 对于普通⽤户通常有两种码率控制模式:CRF(Constant Rate Factor)和Two pass ABR。码率控制是⼀种决定为每⼀个视频帧分配多少⽐特数的⽅法,它将决定⽂件的⼤⼩和质量的分配。

如果你在编译和安装libx264 ⽅⾯需要帮助,请查看ffmpeg和x264编译指南: http://ffmpeg.org/trac/ffmpeg/wiki/CompilationGuide

量化⽐例的范围为0~51,其中0为⽆损模式, 23 为缺省值,51可能是最差的。该数字越⼩,图像质量越 好。从主观上讲,18~28是⼀个合理的范围。18往往被认为从视觉上看是⽆损的,它的输出视频质量和输 ⼊视频⼀模⼀样或者说相差⽆⼏。但从技术的⻆度来讲,它依然是有损压缩

若CRF值加6,输出码率⼤概减少⼀半;若CRF值减6,输出码率翻倍。通常是在保证可接受视频质量的前提下选择⼀个最⼤的CRF值,如果输出视频质量很好,那就尝试⼀个更⼤的值,如果看起来很糟,那就尝 试⼀个⼩⼀点值。

预设是⼀系列参数的集合,这个集合能够在编码速度和压缩率之间做出⼀个权衡。⼀个编码速度稍慢的预 设会提供更⾼的压缩效率(压缩效率是以⽂件⼤⼩来衡量的)。这就是说,假如你想得到⼀个指定⼤⼩的⽂ 件或者采⽤恒定⽐特率编码模式,你可以采⽤⼀个较慢的预设来获得更好的质量。同样的,对于恒定质量编码模式,你可以通过选择⼀个较慢的预设轻松地节省⽐特率。

如果你很有耐⼼,通常的建议是使⽤最慢的预设。⽬前所有的预设按照编码速度降序排列为:

tune是x264中重要性仅次于preset的选项,它是视觉优化的参数,tune可以理解为视频偏好(或者视频类型),tune不是⼀个单⼀的参数,⽽是由⼀组参数构成 -tune 来改变参数设置。当前的 tune包括:

如果你不确定使⽤哪个选项或者说你的输⼊与所有的tune皆不匹配,你可以忽略--tune 选项。 你可以使⽤-tune来查看tune列表,也可以通过x264 --fullhelp来查看tune所采⽤的参数配置。

另外⼀个可选的参数是-profile:v,它可以将你的输出限制到⼀个特定的 H.264 profile。⼀些⾮常⽼的或者 要被淘汰的设备仅⽀持有限的选项,⽐如只⽀持baseline或者main。

所有的profile 包括:

查找指定的编码器

初始化

设置编码器参数

将codec_ctx和codec进行绑定

分配pkt和frame

计算出每一帧的数据 像素格式 * 宽 * 高

读取YUV数据

格式化已经申请的内存,将YUV数据,格式化放入frame中

发送YUV数据进编码器

从编码器中获取encode的packet数据

encode的packet数据写入文件

2. ftp putfile出现12003错误 IIS的FTP应该怎么设置

用ffmpeg录像。
(1)编译x264
官网上下了个最新的x264,我下载的文件是last_x264.tar.bz2。

解压命令为#tar -jxv -f last_x264.tar.bz2,解压后的目录为x264-snapshot-20130313-2245。
进入解压后的目录,执行命令./configure --disable-asm,则会生成config.mak。之后就需要修改这个config.mak文件了,改写ARCH=ARM SYS=linux CC=arm-linux-gcc,其中CC写成你自己的交叉编译环境位置,相应的AR、RANLIB也是,具体如下图所示。

3. linux下编译ffmpeg时关于configure的问题.

你准备工作没做好吧!!

  1. 先编译安装Yasm。

  2. 然后编译安装H.264 (也就是x264)。

  3. 再编译安装AAC audio encoder (fdk-aac)。

  4. 编译安装libmp3lame (MP3 audio encoder)。

  5. 编译安装libopus (Opus audio decoder and encoder)。

  6. 编译安装libvpx (VP8/VP9 video encoder and decoder)。

  7. 做后编译安装ffmpeg。

    其中1-6你可以选择编译安装,也可以使用源直接安装。安装后了再编译安装ffmpeg

    你使用 sudo ldconfig -p |grep libx264 看看你的libx264是否正确安装.

    你编译安装x264的时候可以使用2中方式都安装。

cd ../x264

./configure --enable-shared
make
make install

最后

cd ../x264
make distclean
./configure --enable-static
make
make install

4. 请教ffmpeg在centeOS 64位下的编译问题

软件安装


(1). MinGW+Msys安装


下载MSYS,解压到E:/ffmpeg64/msys目录。


下载MinGW-w64,解到E:/ffmpeg64/msys/mingw64目录。


启动msys.bat,打开类似于Linux的终端,并导入mingw64的环境变量。


echo 'export PATH=.:/local/bin:/mingw64/bin:/bin' > .profile

source .profile

(2). SDL安装


下载SDL1.2.14,解压到E:/ffmpeg64/SDL-1.2.14目录。


进入SDL-1.2.14目录,依次执行:


./configure --host=x86_64-w64-mingw32

make

make install

编译过程中,出现如下错误:

5. linux下,编译ffmpeg时如果不装支持库会出现什么结果

分什么支持库。

如果你要h264编码。那你必须下载x264.然后
configure时候 指定一下。

否则不会出错。
直接configure
make
make install

good luck to you.

热点内容
安卓哪里填写apple代码 发布:2025-02-05 00:28:54 浏览:287
oppo手机锁屏密码忘记后如何更换 发布:2025-02-05 00:28:19 浏览:24
幼儿思维编程 发布:2025-02-05 00:18:21 浏览:24
我的世界电脑正版如何进入服务器 发布:2025-02-05 00:18:06 浏览:879
疫情防控健康码预警机制演练脚本 发布:2025-02-04 23:58:46 浏览:38
分治算法java 发布:2025-02-04 23:41:15 浏览:592
安卓app点进去就闪退怎么回事 发布:2025-02-04 23:36:56 浏览:779
宏按键编程 发布:2025-02-04 23:05:11 浏览:904
微信隐形密码在哪里设置 发布:2025-02-04 23:05:01 浏览:866
android的补间动画 发布:2025-02-04 23:03:42 浏览:416