

FFmpeg 命令行工具 - 高级特性、Web 音视频、调试和测试
source link: http://blog.danthought.com/programming/2020/12/05/ffmpeg-tools-advance-web-debug-test/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FFmpeg 命令行工具 - 高级特性、Web 音视频、调试和测试
这篇文章讲解 FFmpeg 命令行工具中使用高级特性、Web 音视频、调试和测试相关的功能。

拼接视频文件
多个视频文件按顺序拼接在一起:
ffmpeg -i city.mp4 -i car.mp4 -filter_complex concat video.mp4
通过 delogo 过滤器来处理:
ffmpeg -i eagles.mpg -vf delogo=x=700:y=0:w=100:h=50:t=3:show=1 nologo.mpg
通过 deshake 过滤器来处理:
ffmpeg -i travel.avi -vf deshake fixed_travel.avi
添加颜色框
通过 drawbox 过滤器来处理:
ffmpeg -i ship.avi -vf drawbox=x=150:w=600:h=400:c=yellow ship1.avi
ffmpeg -i city.mp4 -f null /dev/null
输出结果中 frame 就是帧数:
frame= 990 fps=833 q=-0.0 Lsize=N/A time=00:00:33.00 bitrate=N/A speed=27.8x
video:518kB audio:5684kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
检测 dark frames
通过 blackdetect 过滤器来处理:
ffmpeg -f lavfi -i mptestsrc -vf blackdetect -f sdl 'test'
通过 blackframe 过滤器来处理:
ffmpeg -f lavfi -i mptestsrc -vf blackframe -f sdl 'test'
选择特定的帧来输出
通过 select 过滤器来处理:
ffmpeg -i input.avi -vf select="gte(t\,20)*lte(t\,25)" output.avi
通过 setdar 或者 setsar 过滤器来设置屏幕高宽比进行缩放:
ffplay -i input.avi -vf setdar=16/9
ffplay -i input.avi -vf setsar=1.234
显示视频帧的详细信息
通过 showinfo 过滤器:
ffmpeg -report -f lavfi -i testsrc -vf showinfo -t 10 showinfo.mpg
通过 showspectrum 过滤器:
ffmpeg -i audio.mp3 -vf showspectrum audio_spectrum.mp4
音频波形显示
通过 showwaves 过滤器:
ffmpeg -i music.mp3 -vf showwaves waves.mp4
一次生成多个格式
ffmpeg -i clip.avi clip.flv clip.mov clip.mp3 clip.mp4 clip.webm
过滤器图使用额外媒体输入
ffmpeg -i video.mpg -vf movie=logo.png:sp=5[a];[in][a]overlay video1.mp4
Web 音视频
主流浏览器对 H5 音视频格式的支持:

HTML5 Audio
<audio controls='controls' loop='loop'>
<source src='music.mp3' type='audio/mpeg' />
<source src='music.ogg' type='audio/ogg' />
Audio element is not supported in your browser, please update.
</audio>
HTML5 Video
<video controls='controls' loop='loop' width='640' height='480'>
<source src='videoclip.mp4' type='video/mp4' />
<source src='videoclip.webm' type='video/webm' />
video element is not supported in your browser, please update.
</video>
调试和测试
生成测试报告
带上 -report 参数就可以生成测试报告 ffmpeg-yyyymmdd-hhmmss.log:
ffmpeg -report -i live.mp4 -vf showinfo -t 10 showinfo.mpg
带上 -debug 参数,后面再跟上具体类型:
ffmpeg -debug mmco -f lavfi -i mptestsrc -t 0.5 output.mp4
带上 -debug_ts 参数,在处理过程中会打印出时间戳信息:
ffmpeg -debug_ts -f lavfi -i mptestsrc -t 0.1 output.mp4
带上 -fdebug ts 参数,在处理过程中会打印出更多时间戳信息:
ffmpeg -fdebug ts -f lavfi -i mptestsrc -t 0.1 output.mp4
Recommend
-
10
FFmpeg 命令行工具 - 预设、交错式视频、采集设备和颜色调整 这篇文章讲解 FFmpeg 命令行工具中预设、交错式视频、采集设备和颜色调整相关的功能。
-
14
这篇文章讲解 FFmpeg 命令行工具中使用图像处理和数字音频相关的功能。 静态图片: ffmpeg -i videoclip.avi -ss 01:23:45 i...
-
18
FFmpeg 命令行工具 - 格式转换、时间操作、数学函数、元数据和字幕 这篇文章讲解 FFmpeg 命令行工具中使用格式转换、时间操作、数学函数、元数据和字幕相关的功能。
-
11
这篇文章讲解 FFmpeg 命令行工具中使用视频编辑相关的功能:调整视频大小和视频缩放、剪裁视频、填充视频、翻转视频和旋转视频、模糊视频、锐化视频和其他降噪处理、视频叠加(画中画)、视频上添加文字。
-
20
FFmpeg 命令行工具 - 帮助和码率、帧率和文件大小 这篇文章讲解 FFmpeg 命令行工具中如何查看帮助,以及关于码率、帧率和文件大小的概念和用法。
-
26
FFmpeg 命令行工具 - 基础 作为开发者,使用 FFmpeg 主要分两部分:命令行工具和接口使用,本文讲解如何在 macOS 上编译 FFmpeg,以及 FFmpeg 命令行工具使用的一些基本概念。
-
10
loguru - 打印日志(特别是异常的详细信息) loguru本身是一个日志库,跟logging库差不多,但是它还支持更丰富的一些功能,其中一项就是它可以显示抛出异常时的调用栈和各参数值。 使用方法很简单,我们只用使用loguru.logger.catch
-
7
# 工具简介
-
5
ffmpeg 命令行生成工具 ffmpeg 命令行生成工具 一个能帮你自动生成 ffmpeg 命令行参数的工具
-
4
一、使用 ffmpeg 命令提取 音视频 数据1、提取音频数据 - 保留封装格式2、提取视频数据 - 保留封装格式3、提取视频数据 - 保留编码格式4、提取视频数据 - 重新编码5、提取音频数据 - 保留编码格式
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK