批量提取视频帧率及分辨率
最近遇到一个需求,需要做一些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
批量提取视频帧率及分辨率相关推荐
- python 批量增加文件前缀_用python批量提取视频中的音频文件
安装MoviePy pip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹 C:PythonLibsite-packagesmoviepy 打开config_defau ...
- python批量提取视频帧
python批量提取视频帧 python批量提取视频帧,两种提取方式: 按帧数提取,每个视频提取固定帧数,若所取帧数超过视频总帧数,则截取视频所有帧 按时间间隔提取,每个time提取一帧 1. 使用示 ...
- Python3 批量提取视频中的音频
Python 批量提取视频中的音频: 1. python 提取视频中的音频 将视频中的音频分离出来,另存为MP3 方法1:FFmpeg 方法2:moviepy 2. 批量提取[目录] 提取单个文件.提 ...
- 手机如何批量提取视频中的音频
手机如何批量提取视频中的音频,首先在手机上安装并启动"王者剪辑app",进入一键剪辑模块中的"音频提取"功能, 批量导入或导入一个需要提取背景音乐的视频, 然后 ...
- python给视频添加声音_用python批量提取视频中的音频文件
安装MoviePypip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹C:\Python\Lib\site-packages\moviepy 打开config_def ...
- 视频帧率和分辨率对QoE的影响
Thomas Zinner等人在<Impact of Frame Rate and Resolution on Objective QoE Metrics>(QoMEX 2010)论文中, ...
- FFmpeg批量提取视频的某一帧作为封面
命令是这样的: ffmpeg -i input.flv -ss 00:00:02 -frames:v 1 out.png 说明: -i input.flv 截取的视频的名字 -ss 00:00:02 ...
- 【ffmpeg】批量提取视频中音频
最近有个需求是下载今日头条上的视频,然后把音频提取出来 最开始的方案是用硕鼠下载视频,然后用PR处理导出,后来觉得一个一个视频在PR里导入导出太麻烦 想到ffmpeg可以处理视音频,于是尝试了一下,具 ...
- 【webrtc QOS】视频帧率、分辨率自适应
[[webrtc]openh264编码:QP 解析] (https://zhangbin.blog.csdn.net/article/details/123382213) 我们了解了werbtc 使用 ...
最新文章
- python出现套接字创建不成功_python套接字协议不支持 - python
- Eclipse小技巧
- 数列分块入门 8(LibreOj-6284)
- asp.net GridView 时间格式化 设置 短日期格式 去掉0!
- 鸿蒙系统当贝市场,鸿蒙os2.0系统怎么安装?ota即可!能与当贝d3x投影仪大屏玩?...
- php+select为空,SELECT时候,如何处理某字段空值?
- Ubuntu 配置VNC时,出现“perl: warning: Falling back to the standard locale (C).”等提示错误解决方法...
- 00_kubernetes组件版本和配置策略
- DEVC使用问题集锦
- 计算机办公自动化知识试题及答案,2015年计算机办公自动化考试试题及答案
- 多种电压转换的电路设计方案
- css中标准盒模型和怪异盒模型的区别,如何将标准盒模型转换为怪异盒模型
- 商业智能BI的价值,可视化报表等于商业智能BI吗?
- Uva 1151 Buy or Build 二进制枚举+最小生成树
- 大数据线性回归预测学生成绩
- R语言 Hurst指数计算
- 时分多路复用TDM与时分多址TDMA对比 优缺点以及应用场景
- 真值 原码 补码 反码 移码
- 鲁大师性能测试要装什么软件吗,鲁大师怎么给电脑跑分?赶快看看你的电脑性能如何吧!...
- Shell中 单引号(‘‘) 双引号(““) 反引号(``) $() 的区别