当前位置:   article > 正文

ffmpeg源码编译_centos手动编译github中的ffmpeg源码

centos手动编译github中的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
  • 1

配置成功之后依次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"
        }
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

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
			}
		}
	]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/635836
推荐阅读
相关标签
  

闽ICP备14008679号