FFmpeg中可执行文件ffprobe用法汇总
从https://ffbinaries.com/downloads 下载最新的4.1版本的Windows 64位FFprobe,FFprobe用于从多媒体流中获取相关信息或查看文件格式信息,并以可读的方式打印,FFprobe可以作为一个命令行程序单独使用。
通过执行以下命令将FFprobe信息重定位到ffprobe_help.txt文件中便于查看,FFprobe使用方法为:ffprobe.exe [options] [input_file]。
ffprobe.exe --help > ffprobe_help.txt
以下汇总FFprobe的常用操作:
1. 查看单幅图像信息如png或jpg,则执行以下命令,结果如下图所示:可以获取输入图像的宽、高;获取编码格式,对应FFmpeg源码中的枚举类型AVCodecID,如1.png的编码格式为png(AV_CODEC_ID_PNG),而1.jpg编码格式为mjpge(AV_CODEC_ID_MJPEG);获取像素格式,对应FFmpeg源码中的枚举类型AVPixelFormat,如1.png的像素格式为rgb24(AV_PIX_FMT_RGB24),而1.jpg的像素格式为yuvj444p(AV_PIX_FMT_YUVJ444P)
ffprobe.exe 1.png
ffprobe.exe 1.jpg
2. 查看avi文件信息,则执行以下命令,结果如下图所示:有两个流,一个视频流,一个音频流,视频流采用的是mpeg4(即对应枚举类型AVCodecID中的AV_CODEC_ID_MPEG4)编码方式,音频流采用的是ac3(即对应枚举类型AVCodecID中的AV_CODEC_ID_AC3)编码格式;此文件播放时长为11.26秒;帧率为24;视频帧的像素格式为yuv420p(对应枚举类型AVPixelFormat中的AV_PIX_FMT_YUV420P);视频尺寸为720x528
ffprobe.exe 1.avi
3. 对mp4文件以json格式打印输出(-print_format, 可用的打印格式包括:default, compact, csv, flat, ini, json, xml)、输出格式信息(-show_format)、输出流信息(-show_streams),则执行以下命令,结果如下图所示:有两个流,一个视频流,一个音频流,视频流采用的是h264(即对应枚举类型AVCodecID中的AV_CODEC_ID_H264)编码方式,音频流采用的是aac(即对应枚举类型AVCodecID中的AV_CODEC_ID_AAC)编码格式;此文件播放时长为16.64秒;帧率为30;视频帧的像素格式为yuv420p(对应枚举类型AVPixelFormat中的AV_PIX_FMT_YUV420P);视频尺寸为544x960;产生的1.mp4.info.txt的内容如下:
ffprobe.exe -print_format json -show_format -show_streams -i 1.mp4 > 1.mp4.info.txt
{"streams": [{"index": 0,"codec_name": "aac","codec_long_name": "AAC (Advanced Audio Coding)","profile": "LC","codec_type": "audio","codec_time_base": "1/48000","codec_tag_string": "mp4a","codec_tag": "0x6134706d","sample_fmt": "fltp","sample_rate": "48000","channels": 2,"channel_layout": "stereo","bits_per_sample": 0,"r_frame_rate": "0/0","avg_frame_rate": "0/0","time_base": "1/48000","start_pts": 0,"start_time": "0.000000","duration_ts": 798720,"duration": "16.640000","bit_rate": "96000","max_bit_rate": "94904","nb_frames": "780","disposition": {"default": 1,"dub": 0,"original": 0,"comment": 0,"lyrics": 0,"karaoke": 0,"forced": 0,"hearing_impaired": 0,"visual_impaired": 0,"clean_effects": 0,"attached_pic": 0,"timed_thumbnails": 0},"tags": {"creation_time": "2019-07-28T09:30:06.000000Z","language": "und"}},{"index": 1,"codec_name": "h264","codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10","profile": "High","codec_type": "video","codec_time_base": "146669/8802000","codec_tag_string": "avc1","codec_tag": "0x31637661","width": 544,"height": 960,"coded_width": 544,"coded_height": 960,"has_b_frames": 2,"pix_fmt": "yuv420p","level": 31,"chroma_location": "left","refs": 1,"is_avc": "true","nal_length_size": "4","r_frame_rate": "30/1","avg_frame_rate": "4401000/146669","time_base": "1/90000","start_pts": 5998,"start_time": "0.066644","duration_ts": 1466690,"duration": "16.296556","bit_rate": "1157602","bits_per_raw_sample": "8","nb_frames": "489","disposition": {"default": 1,"dub": 0,"original": 0,"comment": 0,"lyrics": 0,"karaoke": 0,"forced": 0,"hearing_impaired": 0,"visual_impaired": 0,"clean_effects": 0,"attached_pic": 0,"timed_thumbnails": 0},"tags": {"creation_time": "2019-07-28T09:30:06.000000Z","language": "und","encoder": "JVT/AVC Coding"}}],"format": {"filename": "1.mp4","nb_streams": 2,"nb_programs": 0,"format_name": "mov,mp4,m4a,3gp,3g2,mj2","format_long_name": "QuickTime / MOV","start_time": "0.000000","duration": "16.640000","size": "2571206","bit_rate": "1236156","probe_score": 100,"tags": {"major_brand": "mp42","minor_version": "0","compatible_brands": "mp42isom","creation_time": "2019-07-28T09:30:06.000000Z"}}
}
4. 查看h264视频流文件信息:则执行以下命令,结果如下图所示:只有一个视频流,视频流采用的是h264(即对应枚举类型AVCodecID中的AV_CODEC_ID_H264)编码方式;帧率为25;视频帧的像素格式为yuv420p(对应枚举类型AVPixelFormat中的AV_PIX_FMT_YUV420P);视频尺寸为384x288
ffprobe.exe 1.264
5. 查看rtsp视频流信息:则执行以下命令,结果如下图所示:有两个流,一个视频流,一个音频流,视频流采用的是h264(即对应枚举类型AVCodecID中的AV_CODEC_ID_H264)编码方式,音频流采用的是aac(即对应枚举类型AVCodecID中的AV_CODEC_ID_AAC)编码格式;此文件播放时长为9分56.48秒;帧率为24;视频帧的像素格式为yuv420p(对应枚举类型AVPixelFormat中的AV_PIX_FMT_YUV420P);视频尺寸为240x160
ffprobe.exe rtsp://184.72.239.149/vod/mp4://BigBuckBunny_115k.mov
GitHub:https://github.com/fengbingchun/OpenCV_Test
相关文章:

CocoaPods导入的库其头文件导入的方法
尽管CocoaPods使用十分方便,但其导入的第三方框架还是要经过几步操作,才能供项目使用; 第一步:导入库 1>-在终端进入项目的根目录; 2>-输入:touch Podfile,则项目文件夹会创建一个空的Podfile,这时,你可以将你想要导入的库写在里面.如: platform :ios, 6.0 pod RESid…
Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...
扫码参与CSDN“原力计划”作者 | 村中少年来源 | CSDN原力计划获奖作品现在有越来越多的公司都参与了开源,其背后有各自的目的所在,姑且不予讨论。本文是从多个方面分析各大公司在开源上的投入情况。由于全世界绝大多数的开源项目都有发布到Github上&…

jquery源码解析:each,makeArray,merge,grep,map详解
jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的。 jQuery.extend({ ...... each: function( obj, callback, args ) { //$.each(arr , function(i,value){}),第三个参数用于…

swift实现提示框第三方库:MBProgressHUD
GitHud的下载地址是:https://github.com/jdg/MBProgressHUD/ 下载完成后,将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的Swift项目。因为使用的swift语言,所以拖入项目的时候会提示是否新建一个桥接objective-c与swift的文件ÿ…
这段Python代码让程序员赚300W,公司已确认!网友:神操作!
Python到底还能给人多少惊喜?笔者最近看到了这两天关于Python最热门的话题,关于《地产大佬潘石屹学Python的原因》,结果被这个回答惊到了:来源:知乎 https://www.zhihu.com/question/355880221笔者翻了翻那些回答&…

FFmpeg中可执行文件ffmpeg用法汇总
从https://ffbinaries.com/downloads 下载最新的4.1版本的Windows 64位FFmpeg,FFmpeg是一个快速的音频/视频转换工具,FFmpeg可以作为一个命令行程序单独使用。 通过执行以下命令将FFmpeg信息重定位到ffmpeg_help.txt文件中便于查看,其内容如…

下载Ext JS 5.1 gpl版本的方法
先进入官网:http://www.sencha.com然后在导航的Products中选择Sencha Ext JS,会看到以下页面:这时候不要单击Download按钮,而是要单击导航中的DETAILS,页面切换后,就可在底部看到GPL版本的下载按钮了&#…

对MBProgressHUD进行封装并精简使用
几个效果图: 以下源码是MBProgressHUD支持最新的iOS8的版本,没有任何的警告信息 MBProgressHUD.h 与 MBProgressHUD.m MBProgressHUD.hMBProgressHUD.m以下是本人在MBProgressHUD基础上封装的类,觉得部分的使用基于block ShowHUD.h 与 Show…

基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
HMAC(Hash-based Message Authentication Code):基于Hash的消息认证码,是一种通过特别计算方式之后产生的消息认证码(MAC),使用密码散列函数,同时结合一个加密密钥。它可以用来保证数据的完整性,同时可以用来作某个消息…

英特尔发布oneAPI软件计划及beta产品,面向异构计算提供统一可扩展的编程模型
近日,在2019年超级计算大会上,英特尔发布了一项全新软件行业计划oneAPI,助力充分释放高性能计算与人工智能技术融合时代多架构计算的潜力,同时发布了一个oneAPI beta产品。 英特尔oneAPI行业计划,为跨多种包括CPU、GP…

Mac下配置Maven
1.Java环境变量设置就不说。 但是配置Maven需要检查下Java环境变量的设置。需要检查JAVA_HOME环境变量以及Java命令 wanyakundeMacBook-Pro:Library wanyakun$ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home wanyakundeMacBook-Pro:Librar…

UIAlertAction的用法
let alertController UIAlertController(title:"系统提示", message:"您确定要退出程序吗?", preferredStyle: .alert) let cancelAction UIAlertAction(title:"取消", style: .cancel, handler:nil) let okAction UIAlertAction(tit…

在Windows和Linux上编译gRPC源码操作步骤(C++)
gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程。 Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git、CMake、Perl、Go、yasm; 2. 依次执行如下命令: git clone https://github.co…
这些算法工程师,他们真的是太难了!
现在的算法工程师真的是太难了!要让AI会看人眼都分辨不清的医疗影像数据又不够,还得用前沿技术好不容易学会看片,还要让AI会分析病理赋予AI诊断疾病的使命然后几十种模型,N次计算只给一张显卡Boss就问:你打算怎么做&am…

Java 汉子转拼音
1. 引入: pinyin4j-1.1.0 包; http://pan.baidu.com/s/1eQ8a874 2. 转换; private static String ChineseToPinyin(String name){String pinyinName"";char[] nameChar name.toCharArray(); HanyuPinyinOutputFormat defaultFormat new HanyuPinyinOutputFormat()…

Swift - 使用Alamofire通过HTTPS进行网络请求,及证书的使用
(本文代码已升级至Swift3) 我原来写过一篇文章介绍如何使用证书通过SSL/TLS方式进行网络请求(Swift - 使用URLSession通过HTTPS进行网络请求,及证书的使用),当时用的是 URLSession。本文介绍如何使用 Alam…

gRPC简介及简单使用(C++)
gRPC是一个现代的、开源的、高性能远程过程调用(RPC)框架,可以在任何平台运行。gRPC使客户端和服务器端应用程序能够透明地进行通信,并简化了连接系统的构建。gRPC支持的语言包括C、Ruby、Python、Java、Go等。 gRPC默认使用Google的Protocol Buffers&a…
YC中国被撤,陆奇独立运营个人新品牌「奇绩创坛」
整理 | Jane出品 | AI科技大本营(ID:rgznai100)近日,Y Combinator(以下简称 YC) 发布消息称,YC 将撤回 YC 中国业务与运营,这一品牌也将停止使用,YC的战略布局将调整重新…

shell 脚本逐行读取多个文件,并逐行对应
#!/bin/bashfor i in seq 448doaaased -n "$i"p num.txtbbbsed -n "$i"p text.txt/root/cooper/sms.pl $aaa $bbbdonenum.txt 记录了348个号码text.txt中记录了348个字段效果是取num.txt中第一行作为第一行参数 取text.txt中第一行作为第二个参数num.txt要…

iOS常用知识点1
多线程、特别是NSOperation 和 GCD 的内部原理。 运行时机制的原理和运用场景。 SDWebImage的原理。实现机制。如何解决TableView卡的问题。 block和代理的,通知的区别。block的用法需要注意些什么。 strong,weak,retain,assign&a…
美团BERT的探索和实践 | CSDN原力计划
扫码参与CSDN“原力计划”作者 | 杨扬 佳昊 金刚等来源 | CSDN原力计划作品*点击阅读原文,查看美团技术团队更多干货文章。背景2018年,自然语言处理(Natural Language Processing,NLP)领域最激动人心的进展莫过于预训练…

程序员的自我修养--链接、装载与库笔记:可执行文件的装载与进程
可执行文件只有装载到内存以后才能被CPU执行。 1. 进程虚拟地址空间 程序和进程有什么区别:程序(或者狭义上讲可执行文件)是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运…

JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全...
直接使用JDBC访问数据库时,需要避免以下隐患: 1. 每一次数据操作请求都需要建立数据库连接、打开连接、存取数据和关闭连接等步骤。而建立和打开数据库连接是一件既耗资源又费时的过程,如果频繁发生这种数据库操作,势必会使系统性能下降。 2.…

程序员的自我修养--链接、装载与库笔记:Linux共享库的组织
共享库(Shared Library)概念:其实从文件结构上来讲,共享库和共享对象没什么区别,Linux下的共享库就是普通的ELF共享对象。由于共享对象可以被各个程序之间共享,所以它也就成为了库的很好的存在形式,很多库的开发者都以…

iOS下JS与原生OC互相调用
iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。 JS调用原生OC篇 方式一 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相…
马斯克发首款会上火星的电动皮卡:28万起,可防弹,造型相当“赛博朋克”...
整理 | Jane、非主流出品 | AI科技大本营(ID:rgznai100)【导读】马斯克今日发布酝酿多年、“真爱系列”的第一辆电动皮卡Cybertruck,Cybertruck 是赛博朋克(cyberpunk)与卡车(truck)…

让你提升命令行效率的 Bash 快捷键
为什么80%的码农都做不了架构师?>>> 原文:http://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。 编辑命令 Ctrl a :移到命令行首Ct…

程序员的自我修养--链接、装载与库笔记:Windows下的动态链接
Windows下的PE的动态链接与Linux下的ELF动态链接相比,有很多类似的地方,但也有很多不同的地方。 1. DLL简介 DLL即动态链接库(Dynamic-Link Library)的缩写,它相当于Linux下的共享对象。Windows系统中大量采用了这种DLL机制,甚至…

iOS下JS与OC互相调用(一)--UIWebView 拦截URL
1.在JS 中做一次URL跳转,然后在OC中拦截跳转。(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做。)2.利用WKWebView 的MessageHandler。3.利用系统库JavaScriptCore&#…
AI换脸鉴别率超99.6%,微软用技术应对虚假信息
来源 | 微软亚洲研究院AI头条(ID:MSRAsia)近日社交网络上爆红的一款换脸应用,让许多普通用户体验到了跟爱豆同框、与偶像飙戏的快乐,也因数据使用带来的问题陷入了舆论的漩涡——除了用户隐私保障,如何辨别和处理换脸应…