FFmpeg教程(干货快速上手)

news2024/11/17 14:22:48

什么是FFmpeg?

FFmpeg是一款免费、开源的跨平台多媒体处理工具,它支持几乎所有的视频格式和编码标准。FFmpeg包含了一系列的子项目和工具,如ffmpeg命令行工具用于转码和处理视频和音频文件,ffplay用于播放多媒体内容,而ffprobe则用于分析多媒体流的信息。

如何安装FFmpeg?

Windows

  • 下载最新版的FFmpeg:访问官方网站或github下载。
  • 解压缩到指定目录,例如:C:\FFmpeg
  • 添加FFmpeg到系统环境变量,确保能在任何路径下调用FFmpeg。
    如果在尝试运行 ffprobe 时收到 “不是内部或外部命令,也不是可运行的程序或批处理文件。” 的错误,这通常意味着 ffprobe(随 FFmpeg 一起安装)没有被添加到你的系统环境变量

macOS

推荐使用Homebrew,一个macOS的包管理器,通过简单的命令brew install ffmpeg即可完成安装。

Linux

大部分Linux发行版的包管理器都包含FFmpeg。以Ubuntu为例,使用sudo apt-get install ffmpeg命令即可安装。

如何添加 FFmpeg 到环境变量?

在 Windows 上:

  1. 找到 FFmpeg 的安装路径:记录下你解压缩 FFmpeg 的文件夹路径,需要找到 bin 目录的路径,例如 C:\ffmpeg\bin
  2. 编辑环境变量
    • 在搜索栏中搜索并打开“系统环境变量”或“编辑系统环境变量”。
    • 点击“环境变量”按钮。
    • 在“系统变量”区域找到并选择变量名为“Path”的变量,然后点击“编辑”。
    • 在编辑环境变量窗口,点击“新建”,然后粘贴你的 FFmpeg bin 目录路径(例如 C:\ffmpeg\bin)。
    • 点击“确定”保存你的更改,并关闭所有剩余的系统属性窗口。
  3. 验证安装:打开一个新的命令提示符窗口,输入 ffprobe -version,如果安装成功,你将看到 FFmpeg 的版本信息,如下图所示即为成功:在这里插入图片描述

在 macOS 或 Linux 上,通常通过终端安装 FFmpeg,路径会自动添加到环境变量中。如果遇到路径问题,可以手动添加路径到您的 shell 配置文件(如 .bash_profile, .bashrc, .zshrc 等)中。

查看视频的编码信息(重要

最大的作用是用来分析视频的兼容性问题!

  1. 打开命令行界面:这可以是 Windows 的命令提示符、PowerShell,或者是 macOS/Linux 的终端。

  2. 运行 ffprobe 命令:使用以下命令格式来获取视频文件的详细信息:

    ffprobe -v error -show_format -show_streams   路径+视频名称.格式
    
比如:ffprobe -v error -show_format -show_streams "C:\Users\lenovo\Desktop\红黑树\2.mp4"

这里,-v error 选项意味着只显示错误消息,-show_format-show_streams 选项用于显示文件的格式和各个流的详细信息。你需要将 your_video_file.mp4 替换为你想要检查的视频文件的路径和文件名。

运行这个命令后,ffprobe 会输出该视频文件的一系列信息,包括每个流(视频、音频等)的编解码器类型、分辨率、帧率等详细信息。具体地,你可以在输出中查找以下信息:

  • 视频流(Video stream):查找 codec_name 字段可以知道视频编码类型(如 h264hevc 等),widthheight 字段显示视频分辨率,avg_frame_rater_frame_rate 显示帧率。

  • 音频流(Audio stream):同样地,codec_name 字段表示音频编码类型(如 aacmp3 等)。

这些信息对于理解为何某些视频文件无法在特定的播放器或浏览器中播放非常有用,因为它可以帮助你确认文件是否使用了不被支持的编码格式。如果发现问题,您可以使用 FFmpeg 将视频转码为更兼容的格式。
以下是一个示例视频的编码信息:

[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[27][0][0][0]
codec_tag=0x001b
width=850
height=480
coded_width=850
coded_height=480
closed_captions=0
film_grain=0
has_b_frames=2
sample_aspect_ratio=256:255
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=30
color_range=unknown
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
field_order=progressive
refs=1
is_avc=false
nal_length_size=0
ts_id=1
ts_packetsize=188
id=0x100
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/90000
start_pts=133200
start_time=1.480000
duration_ts=156337200
duration=1737.080000
bit_rate=N/A
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=41
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
codec_type=audio
codec_tag_string=[15][0][0][0]
codec_tag=0x000f
sample_fmt=fltp
sample_rate=44100
channels=2
channel_layout=stereo
bits_per_sample=0
initial_padding=0
ts_id=1
ts_packetsize=188
id=0x101
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/90000
start_pts=129020
start_time=1.433556
duration_ts=156328910
duration=1736.987889
bit_rate=67783
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=N/A
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=0
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:non_diegetic=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:language=eng
[/STREAM]
[FORMAT]
filename=C:\Users\lenovo\Desktop\浠嶤++绾㈤粦鏍戣璧?涓嶅彲鎾斁\浠嶤++绾㈤粦鏍戣璧穃绗竴绔?1\璇炬椂1-浠嶤++绾㈤粦鏍戣璧?mp4
nb_streams=2
nb_programs=1
nb_stream_groups=0
format_name=mpegts
format_long_name=MPEG-TS (MPEG-2 Transport Stream)
start_time=1.433556
duration=1737.126444
size=41636080
bit_rate=191746
probe_score=50
[/FORMAT]

基础使用技巧

视频转码

转码是FFmpeg最常见的应用之一。例如,将MKV格式转换为MP4:

ffmpeg -i input.mkv -codec copy output.mp4

裁剪视频

FFmpeg可以根据时间裁剪视频,无需重新编码:

ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:20 -c copy output.mp4

合并视频

FFmpeg可以合并同格式的视频文件:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

其中filelist.txt包含了所有要合并视频文件的列表。

提取音频

从视频文件中提取音频轨道:

ffmpeg -i input.mp4 -vn -acodec copy output.aac

高级应用

批量处理

FFmpeg支持批量处理文件,结合Shell脚本可以大幅提高工作效率。

实时流处理

FFmpeg支持处理实时视频流,可以用于直播场景。通过RTMP或HLS等协议推流和拉流。

视频滤镜

FFmpeg拥有丰富的滤镜库,支持视频剪辑、色彩校正、字幕添加等高级编辑功能。

ffmpeg -i input.mp4 -vf "fps=25,scale=1280:-1:flags=lanczos" -c:v libx264 -preset fast -c:a aac output.mp4

学习资源推荐

  • FFmpeg官方文档:深入理解FFmpeg的最好资源。
  • GitHub:许多开源项目使用FFmpeg,从中学习实际应用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​谷歌seo外链服务哪家好?

首先你要知道的,就是外链能起到的作用,不是说工具查一查外链数有增加就可以的,外链最重要的作用就是提升关键词排名,发的外链没有效果是没有任何意义的,而且外链基本上是一次性服务,服务完了没有效果完全就…

知识管理系统原来搭建起来这么简单,秘诀在这!

随着信息技术的发展,知识管理系统已经成为组织和团队必不可少的一部分,它可以帮助我们收集、组织和共享知识信息,提升工作效率。然而,搭建一套好的知识管理系统并不会一帆风顺,但放心,我们有简单易行的建设…

2024年最强云桌面科普来啦

云桌面(Cloud Desktop)是一种最终用户计算方法,它将虚拟桌面和应用程序托管在基于云的资源上,而不是传统的本地企业数据中心资源上。这使得用户只需通过互联网连接,就能够从任何地方、任何设备访问云桌面。云桌面也被称…

升级Xcode 15-全程绿灯+高速公路

还没升级Xcode15的兄弟们,恭喜你们,看完这篇文章,让你的升级Xcode15 之路畅通无阻外加全程高速😎。 前提 系统要求:MacOS 13.5 或更高版本 系统没达到要求的兄弟,先下载好系统升级包,下载好了…

夏朝历史及商周更替

首先我们要知道,为什么我们历史书上把石器时代的几千年叫做三皇五帝时期,而夏启开始我们叫做夏朝呢?那是因为夏朝开始跟原来有几个不一样的特征,第一是父传子家天下,正式确定部落或者方国(甲骨文国字就是拿…

C++学习笔记:AVL树

AVL树 什么是AVL树?AVL树节点的定义AVL树的插入平衡因子调整旋转调整左旋转右旋转左右双旋右左双旋 AVL树完整代码实现 什么是AVL树? AVL是1962年,两位俄罗斯数学家G.M.Adelson-Velskii和E.M.Landis 为了解决如果数据有序或接近有序二叉搜索树将退化为单支树,查找…

河北省国际光伏展览会

能源是国民经济发展的重要基础之一。随着国民经济的发展,能源的缺口增大,能源安全及能源在国民经济中的地位越显突出。我国是世界上少数几个能源结构以煤为INVITATION主的国家之一,也是世界上最大的煤炭消费国,燃煤造成的环境污染…

鸿蒙系统:揭秘前端开发的新机遇

众所周知,华为开发者大会2023,宣布不再兼容安卓,同时宣布了“鸿飞计划”,欲与iOS、安卓在市场三分天下,这对中国国产操作系统而言,具有划时代的意义。 鸿蒙应用开发的兴起&发展 鸿蒙操作系统是华为自…

力扣102. 二叉树的层序遍历

Problem: 102. 二叉树的层序遍历 文章目录 题目描述思路复杂度Code 题目描述 思路 直接套用树的层序遍历模板,同时将每一层的节点存入一个数组中,并将其存入最终的二维结果数组中 复杂度 时间复杂度: O ( n ) O(n) O(n);其中 n n n为树节点的…

基于Vue的体育汇App设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 核心技术的理论与分析 3 1.1 客户端技术 3 1.1.1 Vue.js框架 3 1.1.2 Vue.js路由管理 3 1.1.3 Vuex状态管理 3 1.1.4 MVVM开发模式 4 1.1.5 Vant组件库 5 1.2 服务端技术 5 1.2.1 Node.js 5 1.2.2 Egg.js框架 5 1.3 数据库技术 6 1.4 本章…

牛客网——美团2024届秋招笔试第三场编程真题

牛客网——美团2024届秋招笔试第三场编程真题 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题1. 平均数为k的最长连续子数组2. 小球投盒3. 小红结账4. 小美的游戏5. 小美种果树6…

并查集(蓝桥杯 C++ 题目 代码 注解)

目录 介绍: 模板: 题目一(合根植物): 代码: 题目二(蓝桥幼儿园): 代码: 题目三(小猪存钱罐): 代码: …

设计模式-行为型模式-职责链模式

在软件系统运行时,对象并不是孤立存在的,它们可以通过相互通信协作完成某些功能,一个对象在运行时也将影响到其他对象的运行。行为型模式(Behavioral Pattern)关注系统中对象之间的交互,研究系统在运行时对…

应用内存分析

adb shell cat /proc/meminfo 命令,查看剩余的空间还有多少,通常的系统剩余空间是: MemFree cached 1.衡量标准参数 VSS(Virtual set Size):虚拟内存耗用(包括共享库占用的内存) RSS(Resident set Size)&#xff1…

js判断页面是否是在iframe里面

文章目录 一、前言1.1、_blank跳转1.2、_self跳转 二、方法2.1、判断子项目是否是在iframe内部2.2、实现_self跳转 三、最后 一、前言 上面是父前端项目里的iframe加载了子前端项目的页面。此时如果点击子项目的内容,如果要进行父项目浏览器页面跳转,可以…

社区医院智慧管理:Java+SpringBoot新实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

斐讯N1 刷coreelec 笔记

1.下载恩山的镜像 下载好后不需要刷优盘 这个很方便,可以勾选擦除flash (如果第一次装) 升级可以不用勾选 详细使用参考恩山大佬的描述 2.下载插件 想装openwrt 发现镜像里面 coreelec-addons 挂了,研究了好长时间可以 去githu…

智慧城市中的数字孪生:构建城市管理的未来框架

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、实时监测与预警 2、模拟与优化 3、智能化决策 4、协同与共享 四、数字孪生技术构建城市管理的未来框架的价值 1、提高管理效率 2、优化资源配置 3、提升公共服务水平 4、增强应对突发事…

【学习笔记】微信运营工具

办公工具 在线 http://uzer.meMindMaster即刻(APP)收趣(APP)MindMaster(app) 安装 文字工具 Mega Emoji 文字云 石墨文档 giftools 音频工具 变声实验室(APP) 录音APP&am…

【完美实现】VITE + VUE3 + SVG图片解析+element-plus开发环境初始化(基于macos)

一、最终效果 废话少说,直接上效果 这是我的初始化程序提供的页面,在这个页面上实现了一下几个功能: 1、vite初始化之后的路由安装和初始化; 2、标准SVG的解析,并可调整大小、颜色; 3、element-plus的安…