ubuntu16编译mpv播放器记录

mpv播放器用meson构建,meson不支持低版本python3.5要3.7.0,cmake 3.17
下面的所有依赖都弄好后编译播放器,编译时会一步一步报缺少什么依赖,依次去解决就行
meson build
报找不到libplacebo
Run-time dependency libplacebo found: NO (tried pkgconfig and cmake)
meson.build:26:13: ERROR: Dependency "libplacebo" not found, tried pkgconfig and cmake
找到libplacebo.pc文件
sudo cp /home/mission/libplacebo/build/meson-private/libplacebo.pc /usr/local/lib/pkgconfig/
编译时报找不到一些libplacebo用的头文件,把头文件路径加下
export C_INCLUDE_PATH=/home/mission/1.3.280.1/x86_64/include:/home/mission/libplacebo/build/src/include:/home/mission/libplacebo/src/include:$C_INCLUDE_PATH
meson compile -C build
meson install -C build

先装vim openssh-server 
编译python时报错少zlib模块
sudo apt-get install zlib1g-dev 
sudo apt-get install -y libssl-dev

python3.7以上需要openssl 版本1.02或者1.1.x以上
openssl version 查看版本

安装openssl 1.1.1版本在新机器上python还是不能用pip改装最新版本3.3.0
下载 https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

cd openssl-1.1.1-pre8
./config --prefix=/usr/local/openssl no-zlib  # 新版openssl将安装在/usr/local/openssl目录下
make
sudo make install
备份
sudo mv /usr/bin/openssl /usr/bin/openssl_bak
sudo mv /usr/include/openssl/ /usr/include/openssl_bak
# 将安装好的openssl的openssl命令软连到/usr/bin/openssl
sudo ln -s /usr/local/openssl/include/openssl /usr/include/openssl
 
# 软链到升级后的libssl.so
sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
 
# 将安装好的openssl命令软连到/usr/bin/openssl
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf  # 需要root权限
 
# 使修改后的/etc/ld.so.conf生效 
sudo ldconfig -v
openssl version 查看版本

安装openssl 3.3.0
要加安装前缀,不然后面装Python时找不到
./Configure --prefix=/usr/local/ssl             
make
make test
sudo make install 
装在了/usr/local/ssl
/usr/local/include/openssl

安装python3.8.5 在另一个新机器上装失败了 pip用不了少ssl,改装python3.7.0
https://www.python.org/downloads/source/ 下载对应版本源码
解压
报错没有--with-ssl 选项看帮助使用了--with-openssl
./configure --with-ssl 失败了
./configure --with-openssl=/usr/local/ssl  --enable-optimizations
make
报错了gcc -pthread -fprofile-generate -Xlinker -export-dynamic -o Programs/_testembed Programs/_testembed.o libpython3.8.a 
-lcrypt -lpthread -ldl  -lutil -lm -L/usr/local/ssl/lib -lssl -lcrypto   -lm
看内容应该是找不到库 -L/usr/local/ssl/lib -lssl,我看了没有产生/usr/local/ssl/lib目录但有个lib64,手动复制个
sudo make install

python3.7.0安装
    ./configure
    make
    make test
    sudo make install

安装meson
pip3 install --user meson 
命令来为user用户单独安装,此过程不需要任何特殊权限. meson会被安装到~/.local/目录下,所以你需要将 ~/.local/bin添加至你的PATH
安装后执行meson -v看不到版本且报错
看提示说pip 版本不是最新
更新版本
pip3 install pip 失败了
百度如何重新安装pip
wget https://bootstrap.pypa.io/get-pip.py


安装cmake
法1:
https://cmake.org/files/ 下载对应版本源码
进入源码目录
sh ./bootstrap
新机器遇到 
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory 
问题,一般是因为 Qt 运行时库没有安装导致的
安装qt库
sudo apt-get install qt-sdk
遇到下面错
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。

解决方法:输入以下命令
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
之后再安装想装的包,即可解决

make -j
编译时报错sha256.c:(.text+0x35): undefined reference to `EVP_MD_CTX_new'
发现cmake默认用的libssl.so不是我编译的最新的,而是老版本的,删除老版本的换成最新的 
sudo ln -s /usr/local/ssl/lib64/libssl.so.3 /usr/lib/x86_64-linux-gnu/libssl.so
又报错libcrypto.so冲突
删除老版本的换成最新的 
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.3 /usr/lib/x86_64-linux-gnu/libcrypto.so
再编译又报错archive_cryptor.c:(.text+0x8): undefined reference to `EVP_CIPHER_CTX_free'
这里我跳过了错先去装gcc11,装完再来编译,好像是好了
sudo make install

法2:
下载对应版本发布包
解压后执行
sudo ln -sf $(pwd)/cmake-3.20.0-linux-x86_64/bin/* /usr/bin/

安装ffmpeg
安装依赖 没有这个libsdl2 就无法生成ffplay
sudo apt-get update && sudo apt-get -y install \
  autoconf \
  automake \
  clang \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libmp3lame-dev \
  libsdl2-2.0 \
  libsdl2-dev \
  libtool \
  libva-dev \
  libx11-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  libfdk-aac-dev \
  libspeex-dev \
  libx264-dev \
  libx265-dev \
  libnuma-dev \
  xorg-dev \
  ninja-build \
  pkg-config \
  texinfo \
  wget \
  yasm \
  libunistring-dev


https://ffmpeg.org/download.html#releases 下载源码包
解压进入
#一些编译参数是要加在./configure 前面的,fPIC要加不然中途会报错让加上
CFLAGS="-fPIC" ./configure --prefix=/usr/local --enable-shared --disable-static
make -j8
sudo make install
测试ffmpeg时说找不到库,设置环境变量
sudo updatedb
export LD_LIBRARY_PATH=/opt/gcc-11.2.0/lib64:/usr/local/lib:$LD_LIBRARY_PATH

安装libplacebo
https://github.com/haasn/libplacebo 下载源码包
先建个目录build
构建设置
meson build
提示要用glad2.0以上版本,Ninja v1.8.2以上,先装glad2.0
ninja -Cbuild
报错
/usr/bin/ld: Dwarf Error: found dwarf version '5', this reader only handles version 2, 3 and 4 information.
demos/plplay.p/plplay.c.o: In function `main':
plplay.c:(.text.startup+0x65): undefined reference to `parse_args'
升级了gcc到最新gcc-13.2.0也没有用
后去看了plplay.c,发现用了parse_args函数,用到的地方不多,且是demos里的估计是demo用的,就给代码注释了,再编译就成功了
安装vulkan
sudo apt-get install vulkan-utils
sudo apt-get install libvulkan-dev
编译libplacebo库时显示
../src/include/libplacebo/vulkan.h:138:11: error: unknown type name ‘VkPhysicalDeviceFeatures2’
  138 |     const VkPhysicalDeviceFeatures2 *features;
下载vulkan源码,设置头文件搜索路径
export C_INCLUDE_PATH=/home/mission/1.3.280.1/x86_64/include:$C_INCLUDE_PATH

安装glad
法1:https://github.com/Dav1dde/glad 下载源码包,不会编译
法2:用python的包管理器pip安装glad2   libplacebo编译要用glad2.0以上版本,
pip install glad2

安装ninja
https://gitee.com/mirrors/ninja?utm_source=alading&utm_campaign=repo 下载源码包
编译生成ninja
./configure.py --bootstrap
sudo cp ninja /usr/bin/ninja

如何查看g++是否支持 c++20
检查是否支持C++20(注意20要写成2a)
g++ -std=c++2a -E - < /dev/null

升级为gcc11
法1 :用apt 升级
sudo apt update
安装software-properties-common包,以便可以使用add-apt-repository:
sudo apt install software-properties-common
添加GCC的PPA(个人软件包存档),以获取最新版本的GCC。你可以选择使用ubuntu-toolchainePPA,它提供了最新的GCC版本:
sudo add-apt-repository ppa:ubuntu-toolchain/test
再次更新包列表,以确保PPA中的包已经被添加:
sudo apt update
安装你需要的GCC版本。例如,如果你想安装GCC-10,可以使用:
sudo apt install gcc-10 g++-10
失败了
法2:下源码自己编译
https://ftp.gnu.org/gnu/gcc/  下载对应版本源码
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev 编译要用到这几个库
解压后进入目录
mkdir build && cd build
../configure --prefix=/opt/gcc-11.2.0 --enable-languages=c,c++ --disable-multilib
这将使用所有的CPU核心来加快编译过程。
make -j$(nproc)
报错没有空间了,还有300MB左右应该没有问题但编译就是不行,清理下空间ok
sudo make install

export PATH=/opt/gcc-11.2.0/bin:$PATH export LD_LIBRARY_PATH=/opt/gcc-11.2.0/lib64:$LD_LIBRARY_PATH
然后,使更改生效:
source ~/.bashrc

下载多个版本gcc后,设置默认版本,下面的70 80是优先级,越高越优先
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 70 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /opt/gcc-11.2.0/bin/gcc 80 --slave /usr/bin/g++ g++ /opt/gcc-11.2.0/bin/g++
想切换版本时就
sudo update-alternatives --config gcc

编译程序运行测试时发现
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found
是gcc库没有更新不支持3.4.29
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC   查看支持版本
设置环境变量
export LD_LIBRARY_PATH=/opt/gcc-11.2.0/lib64:$LD_LIBRARY_PATH 让优先使用新库

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu上使用mpv播放器调整倍速可以通过在终端中执行以下命令来实现: 1. 首先,确保已经安装了mpv播放器。可以使用以下命令安装: $ sudo apt update $ sudo apt install mpv 2. 在终端中执行以下命令来播放视频文件,并调整倍速: $ mpv --speed=<speed> <video_file> 在上述命令中,将"<speed>"替换为你想要的倍速值,例如2.0表示两倍速播放。将"<video_file>"替换为你想要播放的视频文件的路径。 例如,要以两倍速播放名为"video.mp4"的视频文件,可以执行以下命令: $ mpv --speed=2.0 video.mp4 mpv播放器会根据指定的倍速值来调整视频的播放速度。 请注意,如果在终端中执行上述命令时遇到权限问题,可能需要使用sudo命令来提升权限。 另外,如果你有其他关于mpv播放器的问题,可以参考mpv的常见问题页面,该页面提供了关于常见问题的解答和技巧。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [GitHub 开源推荐 | mpv - 一个免费、开源、跨平台的多媒体播放器](https://blog.csdn.net/u011012932/article/details/120793265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值