《FFmpeg开发实战:从零基础到短视频上线》资源下载和内容勘误

2024-06-23 14:12

本文主要是介绍《FFmpeg开发实战:从零基础到短视频上线》资源下载和内容勘误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

资源下载

下面是《FFmpeg开发实战:从零基础到短视频上线》一书用到的工具和代码资源:
1、本书使用的FFmpeg版本为FFmpeg 5.1.2,也可在FFmpeg的github主页上下载最新的FFmpeg源码。
2、本书第12章使用的Android Studio版本为Android Studio Dolphin(小海豚版本)。
3、本书提供所有示例源码的demo工程下载,扫描前言末尾的二维码即可下载完整的随书源码。最新的源码也可访问我的gitee获取,gitee地址是https://gitee.com/aqi00/ffmpeg。
4、本书提供配套的ppt课件下载,扫描前言末尾的二维码即可下载完整的随书ppt。
5、学习音视频开发用到了一些开源工具,本书也提供这些工具的安装文件或者软件源码,扫描前言末尾的二维码即可下载完整的工具包集合。

参考资料

1、所谓零基础指的是FFmpeg零基础,不是C语言零基础,在学习本书之前,建议您先学完谭浩强的《C程序设计》,并且掌握基本的Linux操作命令。
2、在学习第11章之前,建议先入门Qt平台的C++桌面编程。
3、在学习第12章之前,建议先入门Android平台的Java移动编程,可参考笔者的App开发专著《Android Studio开发实战:从零基础到App上线(第3版)》。
4、更多的FFmpeg进阶资料参见《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》。

勘误记录

下面对书中的笔误之处进行更正说明:

1、第3页的“1.2.1  Linux开发机配置要求”
该小节最后一段的第一行,“以华为云的最低档配置为例”改为“以华为云的某个入门档配置为例”,也就是把“最低档”改为“某个入门档”,因为服务商推出的云产品配置是动态变化的。

2、“1.4.3  第一个FFmpeg程序”
“编译通过后执行./hello命令”改为“编译通过后执行./helloc命令”,也就是把程序名hello改为helloc,因为前面编译出来的程序名称叫做helloc。

3、第251页的“8.1.5  给FFmpeg集成x265”
该小节“1. 编译x265”这部分第二段第二行的“在弹出的文件对话框中选择解压后的x265源码目录”改为“在弹出的文件对话框中选择解压后的x265源码下的source目录”,也就在这句末尾的“目录”前面添加“下的source”。

4、第264页的“8.2.3  修改FFmpeg源码解决乱码”
该页代码后面的“接着回到FFmpeg源码的目录,依次执行下面的编译与安装命令。”这行改成下面几段文字:
因为以上代码引用了iconv库的相关函数,所以要声明链接iconv库,也就是打开FFmpeg源码目录下的configure文件,把下面这行
avutil_extralibs="d3d11va_extralibs nanosleep_extralibs pthreads_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs"
改为下面这样,即在该行末尾补充了“ iconv_extralibs”表示增加链接iconv库:
avutil_extralibs="d3d11va_extralibs nanosleep_extralibs pthreads_extralibs vaapi_drm_extralibs vaapi_x11_extralibs vdpau_x11_extralibs iconv_extralibs"

接着回到FFmpeg源码的目录,依次执行下面的配置、编译与安装命令。
./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libfreetype --enable-iconv --enable-zlib --extra-cflags="-I/usr/local/lame/include" --extra-ldflags="-L/usr/local/lame/lib" --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32

5、第330页的“10.1.1  FFmpeg集成SDL”
该小节“1. 编译与安装sdl2”这部分第一行的“源码的入口页面是https://github.com/libsdl-org”改为“源码的入口页面是https://github.com/libsdl-org/SDL”,也就是在该网址后面增加“/SDL”。

6、第378页的“11.1.1  安装桌面开发工具Qt”
该页中间的这行命令“E:\qt-unified-windows-x64-online.exe --mirror http://mirrors.tuna.tsinghua.edu.cn/qt”改成下面的安装命令:“E:\qt-unified-windows-x64-online.exe --mirror https://mirrors.aliyun.com/qt”,也就是把清华大学的镜像地址改为阿里云的镜像地址,因为阿里云的镜像地址更稳定。

这篇关于《FFmpeg开发实战:从零基础到短视频上线》资源下载和内容勘误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087381

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st