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
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK