博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ffmpeg快速解码抽帧,解码关键帧
阅读量:4200 次
发布时间:2019-05-26

本文共 1605 字,大约阅读时间需要 5 分钟。

背景

有很多的视频抽帧的场景,比如视频内容审核,需要对大量的视频来做视频抽帧,虽然视频的解码速度比较快,但是视频量和时长上来后,对整体的资源开销也是非常的大,如果可以在抽帧过程中只解码需要的关键帧,就会节省大量的计算资源。

测试环境

  1. 构建测试片源
    ffmpeg -i src.mp4 -c:v libx264 -preset veryfast -crf 24 -g 500 -keyint_min 250 -r 25 -an -f mp4 test.mp4 -y
  2. 查看片源I帧信息
    ffprobe -i test.mp4 -of compact -show_frames -show_entries frame=key_frame,pkt_pts_time,pict_type,coded_picture_number | grep pict_type=I
frame|key_frame=1|pkt_pts_time=0.000000|pict_type=I|coded_picture_number=0frame|key_frame=1|pkt_pts_time=20.000000|pict_type=I|coded_picture_number=500frame|key_frame=1|pkt_pts_time=35.480000|pict_type=I|coded_picture_number=887frame|key_frame=1|pkt_pts_time=53.720000|pict_type=I|coded_picture_number=1343frame|key_frame=1|pkt_pts_time=67.520000|pict_type=I|coded_picture_number=1688frame|key_frame=1|pkt_pts_time=87.200000|pict_type=I|coded_picture_number=2180

正常抽帧

根据IDR的个数,按每15 frame对视频进行抽帧, 统计任务的资源开销

time ffmpeg -i test.mp4 -vf fps=0.0666666 output_vf_%03d.png

# frame=   48 fps=3.3 q=-0.0 Lsize=N/A time=00:12:00.00 bitrate=N/A speed=49.1x    # video:101033kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown# 147.58s user 2.22s system 1009% cpu 14.835 total

关键帧快速解码抽帧

只解码关键帧进行快速抽帧

time ffmpeg -skip_frame nokey -i test.mp4 -vsync vfr output_idr_%03d.png

# frame=   48 fps= 33 q=-0.0 Lsize=N/A time=00:11:40.52 bitrate=N/A speed= 488x    # video:100474kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown# 6.29s user 0.31s system 427% cpu 1.545 total

分析

上面同样都是抽48帧画面出来,编码帧数量一样,解码导致的差异,导致计算资源开销也不一样;

后续遇到同样的场景,大家也可以参考通过 -skip_frame nokey 来进行快速解码IDR。

转载地址:http://xqfli.baihongyu.com/

你可能感兴趣的文章
操作2:mongodb使用语法
查看>>
如何给分类增加一个属性(后台)
查看>>
linux设置环境变量 临时设置 和 永久设置
查看>>
检查网站在世界各地的打开速度
查看>>
jquery 向上(顶部),向下(底部)滑动
查看>>
seo
查看>>
10个出色的NoSQL数据库
查看>>
MySQL: InnoDB 还是 MyISAM?
查看>>
MySQL性能优化的最佳20+条经验
查看>>
SQL语言的组成部分 ddl dcl dml
查看>>
mysql数据库从库同步延迟的问题
查看>>
1.mysql数据库主从复制部署笔记
查看>>
mysql数据库主从同步的问题解决方法
查看>>
mysql 配置 - on xFanxcy.com
查看>>
MySQL数据库高并发优化配置
查看>>
mysql一: 索引优化
查看>>
测试人员,今天再不懂BDD就晚了!
查看>>
35岁后还被职场青睐的人,都做了这几件事
查看>>
全链路压测那点事(一)
查看>>
阿里巴巴开源性能监控神器Arthas初体验
查看>>