日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mark:x264编译选项

發(fā)布時間:2024/3/13 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mark:x264编译选项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、編譯命令行詳解

  • 命令行參數(shù)列表

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

  • 命令行參數(shù)理解
參數(shù)名參數(shù)說明備注
extra-asflags匯編編譯選項參數(shù)
extra-cflagsgcc編譯選項參數(shù)《微軟編譯選項》
extra-ldflags鏈接外部庫使用
extra-rcflags
disable-clidisable cli正式版本可以關(guān)閉該項。禁止命令行操作。
system-libx264use system libx264 instead of internal
enable-sharedbuild shared library
enable-staticbuild static library
disable-opencldisable OpenCL features
disable-gpldisable GPL-only features商用版本注意GPL?license,使用該功能,自研優(yōu)化代碼需要開源。
disable-threaddisable multithreaded encoding
disable-win32threaddisable win32threads (windows only)
disable-interlaceddisable interlaced encoding support是否禁止支持場編碼
bit-depthset output bit depth (8, 10, all) [all]若使用10,要求YUV數(shù)據(jù)就是10bit。
chroma-formatoutput chroma format (400, 420, 422, 444, all) [all]
disable-asmdisable platform-specific assembly optimizationslinux下要安裝yasm、windows下安裝nasm才能使能該功能。
enable-ltoenable link-time optimization自動尋找可優(yōu)化函數(shù),進行內(nèi)聯(lián)優(yōu)化等
enable-debugadd -g
enable-gprofadd -pg
enable-stripadd -s
enable-picbuild position-independent code地址無關(guān)代碼 (position-independent code,PIC),又稱地址無關(guān)可執(zhí)行文件 (position-independent executable,PIE) ,是指可在主存儲器中任意位置正確地運行,而不受其絕對地址影響的一種機器碼。PIC廣泛使用于共享庫,使得同一個庫中的代碼能夠被加載到不同進程的地址空間中。PIC還用于缺少內(nèi)存管理單元的計算機系統(tǒng)中,使得操作系統(tǒng)能夠在單一的地址空間中將不同的運行程序隔離開來。
disable-avsdisable avisynth support視頻后處理工具。參見:AviSynth
disable-swscaledisable swscale support用于視頻縮放處理。
disable-lavfdisable libavformat support直接調(diào)用ffmpeg庫,解析輸入文件為YUV。
disable-ffmsdisable ffmpegsource supportFFmpegSource2(FFMS2)是 Libav/FFmpeg 的封裝庫,解析輸入文件為YUV。
disable-gpacdisable gpac support參見《GPCA》
disable-lsmashdisable lsmash support參見《lsmash》

二、編譯命令行示例

關(guān)閉一些不使用的編譯選項,減少不必要的代碼分支判斷,提高性能。

./configure --disable-avs --disable-swscale --disable-lavf --disable-ffms?--disable-interlaced --enable-shared --enable-lto --bit-depth=8 --chroma-format=420 --extra-ldflags=-Wl,--output-def=libx264.def

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

三、實測gcc編譯選項

gcc -Wno-maybe-uninitialized -Wshadow -O3 -ffast-math -m64 ?-Wall -I. -I. -D_POSIX_C_SOURCE=200112L -std=gnu99 -D_GNU_SOURCE -fomit-frame-pointer -flto -fno-tree-vectorize

四、實測nasm編譯選項

nasm -I. -I. -DARCH_X86_64=1 -I./common/x86/ -f win64 -DSTACK_ALIGNMENT=16 -DPIC

nasm官網(wǎng):https://www.nasm.us/

五、備注說明

在某些環(huán)境下,對可執(zhí)行文件的大小會有些限制,為減少可執(zhí)行文件的size,可以編譯的優(yōu)化選項有:

1、去掉-g

2、開啟O3

3、開啟strip

4、開啟ar -x,過濾不需要的.a(eg:有個.a,程序鏈接了它,但沒有使用任何符號,這個.a 就不會出現(xiàn)在可執(zhí)行文件里)

5、全局變量不要初始化,讓他在bss區(qū)

總結(jié)

以上是生活随笔為你收集整理的mark:x264编译选项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。