最近遇到一个需求,需要做一些frame rate conversion相关的工作,首先分析需求,有哪些FRC类型?这里需要批量提取一批文件的帧率及分辨率。

1.帧率查看工具

遇到视频,很难不想到ffmpeg,ffmpeg提供了3个实用的可执行文件。

  • ffmpeg:视频转码等处理
  • ffplay:播放相关
  • ffprobe:媒体信息查看

这里选用ffprobe来查看媒体信息,首先,使用ffprobe来提取视频帧率及分辨率信息。

查看媒体信息
ffprobe 'https://vod.300hu.com/4c1f7a6atransbjngwcloud1oss/229f4e1c189448989732040705/v.f30.mp4?dockingId=37a56445-7bb7-44c6-9cbf-116e60d465a1&storageSource=3'查看帧率
ffprobe 'https://vod.300hu.com/4c1f7a6atransbjngwcloud1oss/229f4e1c189448989732040705/v.f30.mp4?dockingId=37a56445-7bb7-44c6-9cbf-116e60d465a1&storageSource=3' -v quiet -show_streams 2>&1 |grep avg_frame_rate |head -1

2.批量分析文件中的帧率

这里使用shell脚本来执行批量操作,首先将视频url保存到文件中,每行保存一个,再按行读入进行分析即可,具体看下述代码。

#!/bin/sh
# 使用while循环读取$1文本
outfile="/Users/lemonhe/Downloads/outfile"
while read -r line
do#判断是否读取到的数据是空行if [ -n $line ]; then#提取fps, width, height#ffprobe输出到标准错误,使用2>&1将标准错误重定向到标准输出#head -1取第一行#tr -cd "[0-9]"取输出结果中的数字fps=`ffprobe $line -v quiet -show_streams 2>&1 |grep avg_frame_rate | head -1`width=`ffprobe $line -v quiet -show_streams 2>&1 |grep coded_width | head -1 |tr -cd "[0-9]"`height=`ffprobe $line -v quiet -show_streams 2>&1 |grep coded_width | head -1 |tr -cd "[0-9]"`outcome="$line $fps $width x $height"echo $outcomeelseecho "current line is null"# x=$x,"'"$line"'"fiecho $outcome >> $outfile
done < $1       #将$1的内容输入到while read循环中

结果如下:

这里有几个点需要阐明下:

  • shell脚本前加入#!/bin/sh表示当前脚本的用/bin/sh来解释执行;
  • ffprobe输出到标准错误,需要使用重定向2>&1后才能使用grep等管道命令,这里参考[1];
  • 逐行处理通过while read -r line读文件来实现,参考[2]。

参考:
[1] https://blog.csdn.net/zhaominpro/article/details/82630528?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
[2]https://blog.csdn.net/suofeng1234/article/details/51790110

批量提取视频帧率及分辨率相关推荐

  1. python 批量增加文件前缀_用python批量提取视频中的音频文件

    安装MoviePy pip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹 C:PythonLibsite-packagesmoviepy 打开config_defau ...

  2. python批量提取视频帧

    python批量提取视频帧 python批量提取视频帧,两种提取方式: 按帧数提取,每个视频提取固定帧数,若所取帧数超过视频总帧数,则截取视频所有帧 按时间间隔提取,每个time提取一帧 1. 使用示 ...

  3. Python3 批量提取视频中的音频

    Python 批量提取视频中的音频: 1. python 提取视频中的音频 将视频中的音频分离出来,另存为MP3 方法1:FFmpeg 方法2:moviepy 2. 批量提取[目录] 提取单个文件.提 ...

  4. 手机如何批量提取视频中的音频

    手机如何批量提取视频中的音频,首先在手机上安装并启动"王者剪辑app",进入一键剪辑模块中的"音频提取"功能, 批量导入或导入一个需要提取背景音乐的视频, 然后 ...

  5. python给视频添加声音_用python批量提取视频中的音频文件

    安装MoviePypip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹C:\Python\Lib\site-packages\moviepy 打开config_def ...

  6. 视频帧率和分辨率对QoE的影响

    Thomas Zinner等人在<Impact of Frame Rate and Resolution on Objective QoE Metrics>(QoMEX 2010)论文中, ...

  7. FFmpeg批量提取视频的某一帧作为封面

    命令是这样的: ffmpeg -i input.flv -ss 00:00:02 -frames:v 1 out.png 说明: -i input.flv 截取的视频的名字 -ss 00:00:02 ...

  8. 【ffmpeg】批量提取视频中音频

    最近有个需求是下载今日头条上的视频,然后把音频提取出来 最开始的方案是用硕鼠下载视频,然后用PR处理导出,后来觉得一个一个视频在PR里导入导出太麻烦 想到ffmpeg可以处理视音频,于是尝试了一下,具 ...

  9. 【webrtc QOS】视频帧率、分辨率自适应

    [[webrtc]openh264编码:QP 解析] (https://zhangbin.blog.csdn.net/article/details/123382213) 我们了解了werbtc 使用 ...

最新文章

  1. python出现套接字创建不成功_python套接字协议不支持 - python
  2. Eclipse小技巧
  3. 数列分块入门 8(LibreOj-6284)
  4. asp.net GridView 时间格式化 设置 短日期格式 去掉0!
  5. 鸿蒙系统当贝市场,鸿蒙os2.0系统怎么安装?ota即可!能与当贝d3x投影仪大屏玩?...
  6. php+select为空,SELECT时候,如何处理某字段空值?
  7. Ubuntu 配置VNC时,出现“perl: warning: Falling back to the standard locale (C).”等提示错误解决方法...
  8. 00_kubernetes组件版本和配置策略
  9. DEVC使用问题集锦
  10. 计算机办公自动化知识试题及答案,2015年计算机办公自动化考试试题及答案
  11. 多种电压转换的电路设计方案
  12. css中标准盒模型和怪异盒模型的区别,如何将标准盒模型转换为怪异盒模型
  13. 商业智能BI的价值,可视化报表等于商业智能BI吗?
  14. Uva 1151 Buy or Build 二进制枚举+最小生成树
  15. 大数据线性回归预测学生成绩
  16. R语言 Hurst指数计算
  17. 时分多路复用TDM与时分多址TDMA对比 优缺点以及应用场景
  18. 真值 原码 补码 反码 移码
  19. 鲁大师性能测试要装什么软件吗,鲁大师怎么给电脑跑分?赶快看看你的电脑性能如何吧!...
  20. Shell中 单引号(‘‘) 双引号(““) 反引号(``) $() 的区别

热门文章

  1. Linux内核设计与实现---模块
  2. 网聊:把自己的idea变成现实时别忘了这些点
  3. 区块链:从底层技术时代走向产品时代的跃进
  4. 液晶显示屏的C语言编码,液晶屏代码讲解
  5. 老闪创业那些事儿(70)——SaaS的新玩法
  6. 开关类传感器输入案例 arduino玛克君
  7. 计算机实现乘法和除法的运算逻辑
  8. sizeof的用法详解
  9. Delphi XE10.4 TrayIcon托盘
  10. 2019全国电赛总结