镭速大文件传输视频文件预览实现原理

devtools/2025/1/21 3:49:53/

镭速可以支持视频预览,在测试过程中需要大量不同格式的视频,如果直接去找各种格式的视频不太现实,所以就会用到一个视频格式转换的工具ffmpeg,本文将介绍ffmpeg的基本使用方法。FFmpeg 是一个免费开源的音视频处理工具,可以进行音视频转码、剪辑、合并、分割等操作。它不仅功能强大,而且跨平台,适用于各种操作系统,包括 Windows、Linux 和 macOS。

介绍ffmpeg工具之前先了解一些视频处理的基本概念

1.概念

1.1容器

视频文件本身是一个容器(container),包含视频、音频和可能的字幕等内容。常见的容器格式通常可以通过文件的后缀名来识别。

查看ffmpeg支持的容器可以使用 ffmpeg -formats 命令查看。

1.2 编码格式

视频和音频需要进行编码才能保存成文件。不同的编码格式(CODEC)具有不同的压缩率,从而导致文件大小和清晰度的差异。
常见的视频编码格式:h.264、h.265、mpeg-2、mpeg-4。

常见音频编码格式:MP3、AAC

1.3 编码器

编码器(encoders)是用来实现特定编码格式的库文件。只有安装了相应格式的编码器,才能进行该格式的视频/音频编码和解码。以下是一些常见的内置于 FFmpeg 的视频编码器。

libx264:最流行的开源 H.264 编码器

NVENC:基于 NVIDIA GPU 的 H.264 编码器

libx265:开源的 HEVC 编码器

libvpx:谷歌的 VP8 和 VP9 编码器

libaom:AV1 编码器

3.ffmpeg常用命令

3.1查看本地的视频信息

ffmpeg -i 查看的视频

fps:表示平均帧率,总帧数除以总时长(以s为单位)。

tbr :表示帧率,该参数倾向于一个基准,往往tbr跟fps相同。

tbn: 表示视频流

tbc : 表示视频流

yuv420p: 电视行业的颜色编码方法

avc1:mp4视频格式封装的avc1编码格式(是不带起始码的H264编码格式)

acc:音频编码格式(Advanced Audio Coding,高级音频编码)

3.2转FPS

Ffmpeg –i 待转视频 -r 帧数 转换后的视频

3.3视频格式转换

比如一个avi文件,想转为mp4,或者一个mp4想转为avi。

ffmpeg -i input.avi output.mp4

ffmpeg -i input.mp4 output.avi

3.4提取音频

ffmpeg -i test.mp4 -acodec copy -vn output.aac
上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。
ffmpeg -i test.mp4 -acodec aac -vn output.aac

提取视频

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

3.5视频剪切

参数:-ss表示开始切割的时间 、-t表示要切多少。

下面就是从15秒开始,切5秒钟出来,下面的命令,可以从时间为00:00:15开始,截取5秒钟的视频。

Ffmpeg -ss 00:00:15 -t 00:00:05 -i D:\otherVedio\IOSvedio2.mp4 D:\otherVedio\IOSvedio2-截取3秒.avi

或者

ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

3.6码率转换

-b:v主要是控制平均码率。

比如一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率。

ffmpeg -i input.mp4 -b:v 2000k output.mp4

3.7视频编码格式转换

比如一个视频的编码是MPEG4,想用H264编码

ffmpeg -i input.mp4 -vcodec h264 output.mp4

3.8分辨率转换

Ffmpeg – i 原视频文件 -s 360x640 新视频文件

以上只是简单介绍了ffmpeg的简单用法,测试过程中主要用于转换不同编码格式、不同分辨率、不同码率等的视频文件。总之,ffmpeg 是一个非常强大的音视频处理工具,具备处理各种音视频格式、进行剪辑和编辑、音频处理、视频编解码、流媒体传输、视频分析和处理等多种功能,适用于各种音视频处理需求。


http://www.ppmy.cn/devtools/152256.html

相关文章

Git 合并和 Git 变基有什么区别?

Git 合并(merge)和 Git 变基(rebase)是两种不同的整合分支的方法。它们的主要区别如下: Git 合并(merge) • 操作方式:将两个分支的历史记录合并在一起,生成一个新的合…

MYSQL的第一次作业

目录 前情提要 题目解析 连接并使用数据库 创建employees表 创建orders表 创建invoices表 ​查看建立的表 前情提要 需要下载mysql并进行配置,建议下载8.0.37,详情可见MySQL超详细安装配置教程(亲测有效)_mysql安装教程-CSDN博客 题目解析 …

UnityEditor脚本:调用ADB推送文件到手机

因为经常要直接把工程文件推入到手机上跑真机测试,就做了一个,在工程内选中文件,推送到手机的简单脚本。 这里的根据项目需要,按文件的目录结够push进手机,如果只是推buddle,会更简单点,不做拓…

Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)

目录 前言1. 基本知识2. Java代码 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 单纯学习Redis可以看我前言的Java基本知识路线!! 对于Java的基本知识推荐阅读: java框架…

一文读懂服务器的HBA卡

什么是 HBA 卡 HBA 卡,全称主机总线适配器(Host Bus Adapter) ,是服务器与存储装置间的关键纽带,承担着输入 / 输出(I/O)处理及物理连接的重任。作为一种电路板或集成电路适配器,HBA…

简述mysql 主从复制原理及其工作过程,配置一主两从并验证。

MySQL 主从同步是一种数据库复制技术,它通过将主服务器上的数据更改复制到一个或多个从服务器,实现数据的自动同步。 主从同步的核心原理是将主服务器上的二进制日志复制到从服务器,并在从服务器上执行这些日志中的操作。 MySQL主从同步是基…

【C++学习篇】哈希表的实现

目录 1.哈希的概念 1.1 直接定址法 1.1.1 例题 字符串中的第一个唯一字符 1.2 哈希函数 1.2.1除法散列法/除留余数法 1.2.2 乘法散列法 1.3 哈希冲突 1.4 负载因子 1.5 处理哈希冲突 1.5.1 开放定址法 1.5.1.1 线性探测 1.5.1.2 二次探测 1.5.1.3 双重探测 1.哈…

使用Go语言中的Buffer实现高性能处理字节和字符串

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…