X264的版本号

0 X264官方地扯

  http://www.videolan.org/developers/x264.html

1 X264官方编译的二进制程序命名格式

  官方编译出了LINUX,Win32,Win64等不同OS平台下可运行的版本,每个程序(举例x264-r2694-3b70645.exe)的名称以"-"分成三部分,第一部分为x264,第二部是跟据x264所使用git版本库中记录的提交版本号计算出来的提交次数值, 第三部分是git版本库记录的提交的真实版本号的前7个字符截取出的字符串,另外由于X264还编译出了支持10位位深的程序,这类程序是通过在x264后跟10b表达的,10bit位深程序命名示例:x264-10b-r2694-3b70645.exe

2 通过源代码编译出的X264程序,版本号最后一项为什么是x

  这个情况是通过day tarball下载方式下载的源代码,由于没有git相关信息,所以编译出的程序通过-V 查看版本号时会显示诸如:0.148.x,而不是:0.148.2705 3f5ed56(148是X264 Build 版本号)。所以为了同行之间方便交流或程序升级管理方面考虑,最好还是安装git,通过git下载源代码并编译出适合自己的x264程序。

3 X264版本号定义头文件

x264_config.h,其中的宏定义如下:

#define X264_REV 2699
#define X264_REV_DIFF 0
#define X264_VERSION " r2699"
#define X264_POINTVER "0.148.2699"

这几项宏定义是在编译前运行configure时,由configure调用version.sh生成的,version.sh内容如下:

#!/bin/sh
[ -n "$1" ] && cd $1

git_version() {
trap ‘rm -f config.git-hash‘ EXIT
git rev-list HEAD | sort > config.git-hash
LOCALVER=`wc -l config.git-hash | awk ‘{print $1}‘`
if [ $LOCALVER \> 1 ] ; then
    VER=`git rev-list origin/master | sort | join config.git-hash - | wc -l | awk ‘{print $1}‘`
    VER_DIFF=$(($LOCALVER-$VER))
    echo "#define X264_REV $VER"
    echo "#define X264_REV_DIFF $VER_DIFF"
    if [ $VER_DIFF != 0 ] ; then
        VER="$VER+$VER_DIFF"
    fi
    if git status | grep -q "modified:" ; then
        VER="${VER}M"
    fi
    VER="$VER $(git rev-list HEAD -n 1 | cut -c 1-7)"
    VERSION=" r$VER"
fi
}

VER="x"
VERSION=""
[ -d .git ] && (type git >/dev/null 2>&1) && git_version
echo "#define X264_VERSION \"$VERSION\""
API=`grep ‘#define X264_BUILD‘ < x264.h | sed -e ‘s/.* \([1-9][0-9]*\).*/\1/‘`
echo "#define X264_POINTVER \"0.$API.$VER\""

从中可以看看X264的版本号格式为:0.$API.$VER,其中$API是由X264.h头文件的X264_BUILD宏定义读入的;$VER由git提交记录行(一行一个版号最,多少行就是多少了,也可以理解为提交次数)推导出来的,外加git记录的提交版本号截取出前7个字符构成的字符串。

4 X264的源代码用到版本号宏定义的部分代码

  x264命令行程序的帮助与版本号查询命令的输出部分及x264的资源文件部分。

5 X264的64位VS32版本

  通过简单测试,x264 64位程序比32位同期版本运行速度快10%左右。

时间: 2024-10-05 13:30:20

X264的版本号的相关文章

[X264] MinGW编译x264,VC中调用libx264.dll-------------&lt;参考转&gt;

1. 下载并按照MinGW,最好就缺省按照    http://sourceforge.net/projects/ ... ler/mingw-get-inst/    把C:\MinGW\bin添加到PATH中 (dos命令行 PATH %PATH%;新目录;)2. 下载nasm,    http://www.nasm.us/pub/nasm/releasebuilds/    解压后把nasm.exe拷贝到C:\MinGW\bin中3. 下载最新的x264    http://www.vid

Android/NDK环境下FFmpeg及AAC,MP3,X264的编译

本篇介绍在Android/Ndk环境下FFmpeg的编译及使用, FFmpeg自带了H264.AAC.MP3的解码器,但却没有(或没有好的)相应的编码器.相应的编码器需要使用第三方库.推荐使用的第三方库为x264(H264编码) .FDK_AAC(AAC编码),lame(MP3编码). 在顺序上,应该先编译好第三方库,最后再编译FFmpeg库. [本书说明:本文作者:邵发,本文选自<FFmpeg视音频编程指南>.有关本书的详细信息请访问官网:http://www.afanihao.cn ] [

(转)windows下编译最新的x264

二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的(当然有精力可以全部改成C89),生成的.a库是也是没法调用的,如何转化成可用.lib库就比较重要了. 1下载最新的x264http://videolan.mirror.aussiehq.net.au/x264/snapshots/解压到d盘 2下载mingw+msys进行配置,这里有已配置好的,直接下载用就可

Windows系统下编译FFmpeg for Android(支持x264)

接上一篇:https://www.cnblogs.com/zuoao123/p/10253690.html 上次编译的FFmpeg在使用上有点问题,mediacodec软解码解码器打开失败,avcodec_open2()返回错误值-1.因此想编译一个支持x264的FFmpeg试试看. 一.编译x264 1.下载并解压x264 下载地址: https://www.videolan.org/developers/x264.html 下载最新版本,解压后得到x264-snapshot-20190111

ffmpeg+x264推送high422 10bit码流

一.目的 推送一条rtmp流,视频码流采用h264 high422 10bit编码 二.环境 1.linux系统:Red Hat Enterprise Linux Server release 5.8 2.ffmpeg:3.1.4 3.x264:git下来的最新代码(2016-10-21) 三.编译x264+ffmpeg 1.编译x264 ./configure --enable_static --bit-depth=10 make make install 默认安装库和头文件到/usr/loc

安卓手机如何修改系统版本号的教程(一键完成)

本节教大家如何一键修改手机的系统版本号,借助琢石模拟器强大的参数修改功能,帮我们轻松的完成手机系统版本号的修改. 如果您的手机还没安装琢石模拟器,请先到官网ZS8K.COM自行下载并按照官网教程完成激活. 下面我们开始演示如何修改系统版本号. 1.在没使用琢石模拟器之前,我们先看下手机真实的系统版本信息,可以看到版本是4.2.1,版本号是HM 1 20140309-151349,API级别是17. 2.打开琢石模拟器到虚拟环境列表中,点一键生成,生成一套新的系统参数,其中SDK是16(也就是AP

x264阅读记录-3

14. x264_macroblock_encode函数-1 这个函数主要根据已经选定的模式来对宏块残差进行编码. (1)如果是P_SKIP模式,那么调用x264_macroblock_encode_pskip函数 在x264_macroblock_encode_pskip中先对亮度和色度进行运动补偿,调用的函数函数h->mc.mc_luma和 h->mc.mc_chroma.这两个是函数指针,根据需要对其进行初始化.一般常用的是函数mc_luma, 在mc.c文件中.在mc_luma中如果存

ANDROID版本号和版本名称的重要性介绍

转载请注明出处http://blog.csdn.net/y150481863/article/details/41249159,来自[http://blog.csdn.net/y150481863] 当我们在刚开始学习Android的时候,可能不会过多的关注这个位于manifest.xml文件中的versionCode和versionName. 但是其实一个好的版本控制,对于我们有至关重要的作用. 现在打算写一点基础的东西,突然想到这个知识点,所以就记录下来,作为笔记.有不够详尽或者错误的地方欢

eclipse 版本号

Eclipse 3.1 版本代号 IO [木卫1,伊奥]  Eclipse 3.2 版本代号 Callisto [木卫四,卡里斯托 ]Eclipse 3.3 版本代号 Eruopa [木卫二,欧罗巴 ]  Eclipse 3.4 版本代号 Ganymede [木卫三,盖尼米德 ]  Eclipse 3.5 版本代号 Galileo [伽利略]  Eclipse 3.6 版本代号 Helios [太阳神] Eclipse 3.7 版本代号 Indigo [靛青]Eclipse 4.2 版本代号 J