From 85f977a6763eaffa6d09a73b960589fe769f7fca Mon Sep 17 00:00:00 2001 From: RichardTamarisk <3200226264@qq.com> Date: Thu, 7 Nov 2024 09:35:32 +0800 Subject: [PATCH] * update the configure ffmpeg file * make ffmpeg support x264 * update the configure sdl file --- document/ffmpeg_CentOS7_config/README.md | 103 ++++++++++++------ document/sdl_configure_develop/README.md | 130 ++--------------------- 2 files changed, 78 insertions(+), 155 deletions(-) diff --git a/document/ffmpeg_CentOS7_config/README.md b/document/ffmpeg_CentOS7_config/README.md index 03ea00c..b1a455f 100644 --- a/document/ffmpeg_CentOS7_config/README.md +++ b/document/ffmpeg_CentOS7_config/README.md @@ -1,3 +1,39 @@ +## x264安装 + +- 源码编译 +``` + git clone https://code.videolan.org/videolan/x264.git + cd x264 + ./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared + make + make install + +``` + +- 配置变量 +``` + vim ~/.bashrc + + 在文件最后面添加环境变量: + export PATH="/usr/local/nasm/bin:$PATH" + export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH + + 设置生效; + source ~/.bashrc +``` + +- 验证安装 +``` + richard@richard-MS-7A54:$ pkg-config --libs x264 + -L/usr/local/lib -lx264 + + whereis libx264 + + richard@richard-MS-7A54:~$ ls /usr/local/include/ + libavcodec libavdevice libavfilter libavformat libavutil libpostproc libswresample libswscale opencv4 SDL2 x264_config.h x264.h +``` + + ## 安装开发工具和依赖项:打开终端,并使用以下命令安装必要的开发工具和依赖项: - 在CentOS7中配置ffmpeg环境 @@ -8,10 +44,12 @@ centos: ```sudo yum groupinstall "Development Tools"``` ```sudo yum install git yasm cmake libtool``` ubuntu: - ```sudo apt-get install nasm``` - ```sudo apt-get update``` - ```sudo apt-get install build-essential``` - ```sudo apt-get install git yasm cmake libtool``` + ``` + sudo apt-get install nasm + sudo apt-get update + sudo apt-get install build-essential + sudo apt-get install git yasm cmake libtool + ``` - 安装其他依赖项:FFmpeg还依赖于其他一些库和软件包 centos: @@ -20,37 +58,32 @@ ubuntu: ```sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev liblzma-dev libexpat1-dev``` - 下载FFmpeg源代码:进入您要存储FFmpeg源代码的目录,并使用以下命令克隆FFmpeg的Git仓库 - ```wget https://ffmpeg.org/releases/ffmpeg-4.0.tar.gz``` - ```tar -xf ffmpeg-4.0.tar.gz``` - ```cd ffmpeg-4.0``` - -- 编译和安装FFmpeg:进入FFmpeg源代码目录,并执行以下命令来编译和安装FFmpeg - ```./configure --enable-shared```. - 如果依赖h264的话用下面这条命令,前提安装有h264 - ```./configure --enable-gpl --enable-libx264 --enable-shared --extra-ldflags=-L/usr/local/lib --extra-cflags=-I/usr/local/include```. - ```make```. - ```sudo make install```. - -- 配置开发环境:打开您使用的文本编辑器,创建一个新的文件,例如ffmpeg-dev.sh,并将以下内容添加到文件中. - ```export LD_LIBRARY_PATH=/usr/local/lib```. - ```export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig```. - - - 然后执行 - ```source ffmpeg-dev.sh``` - - 没有反馈则说明成功 - -- 配置动态库路径: - - 将FFmpeg的动态库路径/usr/local/lib添加到/etc/ld.so.conf文件中. - ```sudo echo "/usr/local/lib" >> /etc/ld.so.conf```. - ```sudo ldconfig```. - -- 测试是否配置成功 - ```echo $LD_LIBRARY_PATH```. - ```echo $PKG_CONFIG_PATH```. - - 如果输出了显示正确的路径,则说明环境变量已正确设置 - - 使用以下命令:检测按照和配置 - ```pkg-config --modversion libavcodec```. - - 如果输出显示了正确的版本号。说明ffmpeg库的安装和配置是成功的 + ``` + git clone https://github.com/FFmpeg/FFmpeg.git + cd FFmpeg + git checkout n5.1.4 + ./configure --enable-gpl --enable-libx264 --enable-sdl --enable-shared + make -j8 + sudo make install + ``` + + +- 测试是否配置成功 +``` + 安装成功 + richard@richard-MS-7A54:$ ffmpeg -version + ffmpeg version n5.1.4 Copyright (c) 2000-2023 the FFmpeg developers + built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04) + configuration: --enable-gpl --enable-libx264 --enable-sdl --enable-shared + libavutil 57. 28.100 / 57. 28.100 + libavcodec 59. 37.100 / 59. 37.100 + libavformat 59. 27.100 / 59. 27.100 + libavdevice 59. 7.100 / 59. 7.100 + libavfilter 8. 44.100 / 8. 44.100 + libswscale 6. 7.100 / 6. 7.100 + libswresample 4. 7.100 / 4. 7.100 + libpostproc 56. 6.100 / 56. 6.100 +``` - 如果遇到编译失败,可能需要指定头文件和库路径,请添加该编译参数 ```-I/usr/local/include -L/usr/local/lib``` diff --git a/document/sdl_configure_develop/README.md b/document/sdl_configure_develop/README.md index 39994f1..c8639d8 100644 --- a/document/sdl_configure_develop/README.md +++ b/document/sdl_configure_develop/README.md @@ -1,128 +1,18 @@ # SDL2 下载 -- 官网地址:Simple DirectMedia Layer - Homepage -- 源码下载地址(SDL version 2.0.14):https://www.libsdl.org/release/SDL2-2.0.14.tar.gz -## 编译、安装 -``` - tar -zvxf SDL2-2.0.14.tar.gz - cd SDL2-2.0.14/ - ./configure --prefix=$PWD/_instal - make && make install - cd _install/ -``` -- 这是系统提示的缺少的软件包: -``` - sudo apt install libsdl2-dev -``` - -## 设置环境变量 - -- 在SDL2-2.0.14/_install目录下创建一个.sh文件,比如```sdl.sh```,并在sdl.sh文件中写入以下内容: -- (注)在SDL2-2.0.14目录下的Makfile中加入以下的,并且export前面的不是空格,是tab键 -- 下面代码中的```richard/Downloads```需要改为自己的安装路径 -``` -#!/bin/bash - - export PATH=$PATH:/home/richard/Downloads/SDL2/SDL2-2.0.14/_install/lib - export PATH=$PATH:/home/richard/Downloads/SDL2/SDL2-2.0.14/_install/bin - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/richard/Downloads/SDL2/SDL2-2.0.14/_install/lib/pkgconfig" -``` -- 然后执行以下命令: -``` - chmod +x sdl.sh - ./sdl.sh - source /path/to/sdl.sh -``` -- 这样每次启动终端时,脚本自动运行,并将环境变量设置到终端会话中 +### 安装前请前往ffmpeg_CentOS7_config安装需要的软件包 - -## Makefile创建软链接的命令 -- 创建一个Makefile文件,并将以下内容写入文件中,然后执行命令```make``` +## 编译、安装 ``` -.PHONY:all link unlink mk_cmake_dir link_bin link_pc link_m4 link_cmake - -SRCDIRS = $(PWD) -DSTDIRS = /usr -MKDIR = mkdir -p -RM = rm -rf - -FILE_BIN = sdl2-config -FILE_M4 = sdl2.m4 -FILE_PC = sdl2.pc -DIR_CMAKE = lib/cmake/SDL2 - - -all:link link_bin link_pc link_m4 link_cmake - -mk_cmake_dir: - sudo $(MKDIR) /usr/lib/cmake - -link: - @echo ">>>>make links for the files of include && lib. <<<<" - sudo ln -s $(SRCDIRS)/include/SDL2/ $(DSTDIRS)/include/SDL2 - sudo ln -s $(SRCDIRS)/lib/libSDL2-2.0.so.0.14.0 $(DSTDIRS)/lib/libSDL2-2.0.so.0 - sudo ln -s $(SRCDIRS)/lib/libSDL2-2.0.so.0.14.0 $(DSTDIRS)/lib/libSDL2-2.0.so.0.14.0 - sudo ln -s $(SRCDIRS)/lib/libSDL2.a $(DSTDIRS)/lib/libSDL2.a - sudo ln -s $(SRCDIRS)/lib/libSDL2.la $(DSTDIRS)/lib/libSDL2.la - sudo ln -s $(SRCDIRS)/lib/libSDL2main.a $(DSTDIRS)/lib/libSDL2main.a - sudo ln -s $(SRCDIRS)/lib/libSDL2main.la $(DSTDIRS)/lib/libSDL2main.la - sudo ln -s $(SRCDIRS)/lib/libSDL2-2.0.so.0.14.0 $(DSTDIRS)/lib/libSDL2.so - sudo ln -s $(SRCDIRS)/lib/libSDL2_test.a $(DSTDIRS)/lib/libSDL2_test.a - sudo ln -s $(SRCDIRS)/lib/libSDL2_test.la $(DSTDIRS)/lib/libSDL2_test.la - -link_bin: - @echo ">>>>make links for the files of bin. <<<<" - sudo ln -s $(SRCDIRS)/bin/sdl2-config $(DSTDIRS)/bin/sdl2-config - -link_pc: - @echo ">>>>make links for the files of pc. <<<<" - sudo ln -s $(SRCDIRS)/lib/pkgconfig/sdl2.pc $(DSTDIRS)/lib/pkgconfig/sdl2.pc - -link_m4: - @echo ">>>>make links for the files of m4. <<<<" - sudo ln -s $(SRCDIRS)/share/aclocal/sdl2.m4 $(DSTDIRS)/share/aclocal/sdl2.m4 - -link_cmake: mk_cmake_dir - @echo ">>>>make links for the files of cmake. <<<<" - sudo ln -s $(SRCDIRS)/lib/cmake/SDL2 $(DSTDIRS)/lib/cmake/SDL2 - -unlink: - sudo $(RM) $(DSTDIRS)/include/SDL2 - sudo $(RM) $(DSTDIRS)/lib/libSDL2* - sudo $(RM) $(DSTDIRS)/bin/sdl2-config - sudo $(RM) $(DSTDIRS)/lib/pkgconfig/sdl2.pc - sudo $(RM) $(DSTDIRS)/share/aclocal/sdl2.m4 - sudo $(RM) $(DSTDIRS)/lib/cmake/SDL2 + git clone https://github.com/libsdl-org/SDL.git + cd SDL + git checkout release-2.30.4 + ./configure --enable-audio --enable-alsa + make -j8 + sudo make install ``` -- 请注意上面的代码文件中的是tab键而不是空格,否则会报错 -- 如果提示链接已经存在,先执行make unlink,然后执行make - - - -## SDL测试 -- 与代码文件同一个目录下创建一个Makefile,把下面的代码加入进去,需要把INCDIRS和LIBDIRS后面的路径改为你当前的工作路径,测试代码文件为hello_sdl.c -- 使用```make```命令可以直接生成可执行的二进制文件,执行这个二进制文件时需要在有图形化界面中执行,否则会报错,注意(以下该测试仅用于测试环境是否搭建成功) +- 设置音频驱动: ``` -CC = gcc -C_SRC = ${wildcard *.c} -BIN = ${patsubst %.c, %, $(C_SRC)} - -INCDIRS := -LIBDIRS := - -INCDIRS += /home/richard/Downloads/SDL2/SDL2-2.0.14/_install/include/SDL2 -LIBDIRS += /home/richard/Downloads/SDL2/SDL2-2.0.14/_install/lib - -CFLAGS = -g -Wall -I$(INCDIRS) -L$(LIBDIRS) -lSDL2 -lpthread -lm -ldl - -all:$(BIN) - -$(BIN):%:%.c - $(CC) -o $@ $^ $(CFLAGS) - -clean: - $(RM) a.out $(BIN) - -.PHONY: all clean + export SDL_AUDIODRIVER=alsa ``` -- Gitee