《FFmpeg开发实战:从零基础到短视频上线》出版后记

在软件开发行业当中,音视频是比较小众的方向,以至于很多程序员都没听说过YUV,就更别说了FFmpeg。实际上FFmpeg很早就有了,只是它采用C语言编写,所以在WEB当道的国内软件业中,FFmpeg就像独孤求败那样,一直都未能广为人知。
随着4G和5G的广泛普及,以及移动互联网的蓬勃发展,以短视频、直播等为代表的音视频应用异军突起,FFmpeg这个音视频基座才逐渐被广大程序员了解。尤其是三年疫情期间,许多人因故宅在家里,或在家远程办公,或在家远程学习,助力了音视频应用的发展壮大。

然而FFmpeg本身不提供交互式界面,往往要再封装一层应用界面,才能交给最终用户使用。封装了FFmpeg的著名软件,包括剪辑短视频的剪映,包括实时录像的OBS Studio,乃至流媒体服务器SRS和ZLMediaKit,都以各种形式引用FFmpeg。因此,入门音视频就意味着必须掌握FFmpeg,只有熟悉FFmpeg的命令行与API调用,才能高效地处理各种音视频应用。
令人惋惜的是,国内有关FFmpeg的技术书籍实在少得可怜,尤其关于FFmpeg开发实战的API教程更是凤毛麟角。FFmpeg教材已经如此匮乏了,网络上FFmpeg技术文章也是良莠不齐,使得音视频初学者难以对FFmpeg下手,往往遇到一个难题陷进坑里出不来,由此劝退了不少程序员,无形中显得音视频门槛很高。

有鉴于此,笔者苦心钻研FFmpeg编程,从初学者的角度出发,编写了这本由浅入深的FFmpeg入门书籍《FFmpeg开发实战:从零基础到短视频上线》。该书没有一开始就堆砌许多专业术语,而是从最基本的搭建开发环境开始,引导读者利用FFmpeg编写第一个“Hello World”程序,从而让新手更加适应这种入门编程的节奏。
全书以项目实战为主线,全书共计提供了9大实战项目,每个章节都有专门分类的技术讲解,除了前面三个基础章节以外,后面九章都提供了一个实战项目,方便读者通过实战项目巩固本章学到的FFmpeg编程技术。通过上机实战,有利于理论联系实际,不但要知其然,还要知其所以然。
《FFmpeg开发实战:从零基础到短视频上线》与其他FFmpeg书籍相比,一大特色是介绍了如何将FFmpeg应用于桌面程序和手机APP。因为通常的FFmpeg编程都是在命令行中操作,没有直接面向最终用户的桌面开发和移动开发,难以直观地看到可以交付的产品。而《FFmpeg开发实战:从零基础到短视频上线》的最后两章专门论述了桌面开发和移动开发,比如怎样通过Qt结合FFmpeg开发桌面程序,怎样通过Android Studio结合FFmpeg开发手机APP,通过交互式界面播放和剪辑视频文件,更能激发学员对FFmpeg的学习兴趣。
为了便于读者学习FFmpeg编程,《FFmpeg开发实战:从零基础到短视频上线》同时提供了随书源码、课件PPT,以及书中提到的软件源码和安装文件,这些下载资源可以扫描该书前言末尾的二维码获得。此外,最新的随书源码也可访问我的码云主页,下载页面是 https://gitee.com/aqi00/ffmpeg 。
有需要的朋友可以及时选购《FFmpeg开发实战:从零基础到短视频上线》一书。
当当购书   京东购书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/506423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PVE设置显卡直通(二:Linux显卡直通,以及Linux系统下安装cuda库)

PVE设置显卡直通(一:硬件设置) 本文仅记录PVE关于Linux下的显卡直通步骤 例程不过多阐述 ps: 无直通经验的同学,先参阅 PVE设置显卡直通(一:硬件设置),再参阅本博文 参阅完成 PVE设置显卡直通(一:硬件设置)后,直接在PVE面板中添加显卡硬件到自己的主机即可,此文中…

JavaScript(二)---【js数组、js对象、this指针】

零.前言 JavaScript(一)---【js的两种导入方式、全局作用域、函数作用域、块作用域】-CSDN博客 一.js数组 在js中也有数组的概念,数组使用“[]”定义,其中数组中还可以嵌套数组从而达到多层数组的作用。 访问数组中的某个元素,我们可以直…

什么是HTTP? HTTP 和 HTTPS 的区别?

文章目录 一、HTTP二、HTTPS三、区别参考文献 一、HTTP HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范 在计算机和网络世界有,存在不同的协议,如广播协议、寻址协议、路由协议等等… 而HTTP是…

【Vue】搭建第一个vue3+vite前段项目

不要奇怪我为啥突然开始写前端的文章,唉,一切都是公司的任务罢了。 其实这周学习了前端和coverity,但是后者就算学了我也不能写在我博客里,所以还是写一写前端吧。 node.js 和 npm npm是一个类似于 maven 的包管理器。 去以下…

55 npm run serve 和 npm run build 的分包策略

前言 这里我们来看一下 vue 这边 打包的时候的一些 拆分包的一些策略 我们经常会使用到 npm run build 进行服务的打包 然后 打包出来的情况, 可能如下, 可以看到 chunk-vendors 是进行了包的拆分, 我们这里就是 来看一下 这里 npm run build 的时候的, 一个分包的策略 测试…

【Leetcode每日一题】模拟 - 提莫攻击(难度⭐)(45)

1. 题目解析 题目链接:495. 提莫攻击 2.算法原理 一、分情况讨论 要计算中毒的总时长,我们需要考虑时间点之间的差值,并根据这些差值来确定中毒的实际持续时间。 情况一:差值大于等于中毒时间 假设你的角色在时间点A中毒&#…

C语言 | Leetcode C语言题解之两数相加

题目: 题解: struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode *head NULL, *tail NULL;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val : 0;int n2 l2 ? l2->val : 0;int sum n1 n2 …

C#(winform) 调用MATLAB函数

测试环境 VisualStudio2022 / .NET Framework 4.7.2 Matlab2021b 参考:C# Matlab 相互调用 Matlab 1、编写Matlab函数 可以没有任何参数单纯定义matlab处理的函数,输出的数据都存在TXT中用以后期读取数据 function [result,m,n] TEST(list) % 计算…

上海亚商投顾:沪指低开高走 5.5G概念股午后走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指3月 29日震荡反弹,尾盘涨幅扩大至1%,深成指、创业板指跟随上扬。周期股再度走强&a…

基于SpringBoot+Vue企业级工位管理系统(源码+部署说明+演示视频+源码介绍+lw)

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

Modbus取数测试程序

modbus协议,modbus-tcp协议取数测试程序 Java实现modbus-tcp协议取数操作,数据类型转换操作

list(链表)容器(一)

一、list基本概念 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成 结点的组成:一个是存储数据元素的数据域&#xff0…

Mac OS上使用matplotlib库显示中文字体

文章目录 问题描述解决步骤参考文章 问题描述 如果我们想要使用matplotlib画图的话,可能会出现下面的这种warning: UserWarning: Glyph 24212 (\N{CJK UNIFIED IDEOGRAPH-5E94}) missing from current font.解决步骤 解决这个问题,可以按照下面的做法…

【Leetcode】331. 验证二叉树的前序序列化

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 序列化二叉树的一种方法是使用 前序遍历 。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录&#x…

Tidb和MySQL性能简单测试对比

一、单SQL性能对比 由于TiDB的并发能力优秀,但是单个SQL执行延迟较差,为了客观对比,所以只用1个线程来压测tidb和mysql,以观察延迟情况 二、并发SQL性能对比 TiDB:v6.5.2 MySQL:8.0.26 (单机) 三、结论 …

构建安全高效的用户登录系统:登录流程设计与Token验证详解

在当今数字化时代,用户登录系统是几乎所有在线服务的基础。然而,随着网络安全威胁的不断增加,设计一个安全可靠的登录系统变得至关重要。本文将深入探讨用户登录流程的设计原则以及Token验证的实现方式,带您了解如何构建安全高效的…

【MySQL笔记】行转列+列转行+行转列为什么用SUM()

文章目录 行转列思路实现行转列为什么要用SUM等聚合函数 列转行思路回顾下Union 实现列转行 Reference 行转列 思路 GROUP BY聚合函数 实现行转列 SELECT product_id,SUM(IF(store store1, price, NULL)) AS store1,SUM(IF(store store2, price, NULL)) AS store2,SUM(IF(…

Vulnhub:BROKEN: GALLERY

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb WEB wen信息收集 目录扫描 进制转换 ssh登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l Interface: eth0, type: EN10MB, M…

上位机图像处理和嵌入式模块部署(qmacvisual形状匹配)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在qmacvisual软件当中,提供了两种模板匹配的方法。除了前面介绍的灰度匹配,就是今天讲的形状匹配。当然,对于使…

AI如何影响装饰器模式与组合模式的选择与应用

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章:设计模式深度解析:AI如何影响…