ffmpeg源码编译

编译

config配置

以下配置包含大部分需要使用的功能

./configure --prefix=./ --pkg-config-flags=--static --enable-shared --enable-pthreads --enable-version3 --enable-avresample --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libzimg --enable-debug --disable-optimizations --disable-asm --extra-ldflags=-L/usr/local/lib

配置成功之后依次make && make install即可

一些问题

configure过程肯定不会一帆风顺,中间会很各种依赖包的缺失,需要自己手动安装。
mac用户:brew install xxx
linux用户:apt-get install xxx-dev

已安装依赖包,configure仍然出错:

  • 检查是否未安装pkg-config
  • 检查是否是是pkg-config未监测到相关包
    • pkg-config --libs libass // 如果没显示则需要手动添加依赖
    • pkg-config --cflags libass
    • brew ls xxx //检查xxx包的位置
    • export PKG_CONFIG_PATH="/usr/local/Cellar/srt/1.4.1/lib/pkgconfig" //添加srt包到pkg-config的检测路径

libzimg

–enable-libzimg 需要先安装z.lib库,源码安装参照: https://github.com/sekrit-twc/zimg

  • sudo ./autogen.sh
  • sudo ./configure
  • sudo make -j8
  • sudo make install

重要参考

使用vscode调试

在上面编译部分configure部分只要加上 --enable-debug 便会生成ffmpeg_g文件,可使用该文件进行代码调试,调试步骤很简单,只需要配置vscode的launch.json和task.json两个文件即可。两个文件的内容如下:

launch.json内容:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {          
            "name": "(lldb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/ffmpeg_g",
            "args": [
                "-i",
                "input.MOV",
                "-crf",
                "22",
                "-c:v",
                "libx265",
                "-vframes",
                "300",
                "-pix_fmt",
                "yuv420p",
                "-tag:v",
                "hvc1",
                "output.mp4",
                "-y"
            ],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

task.json

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "C/C++: clang build active file",
			"command": "${workspaceFolder}/make", //"/usr/bin/clang",
			"args": [
				// "-g",
				// "${file}",
				// "-o",
				// "${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值