使用ffprobe进行音视频流的分析(一)

音视频流的结构的分析对进行音视频的处理或者对直播过程中的直播流的卡顿等情况的分析处理起到了至关重要的作用。目前刚刚开始接触这块儿,还是个小白,这里根据平时使用到的一些ffprobe的命令进行一些总结,以作备忘:

ffprobe常用的参数比较多,如果想知道具体的可以使用ffprobe --help来查看一些详细的命令。
我目前涉及到的主要是查看视频流的时间戳、编码格式,主要用得到的命令如下:

  1. ** 使用 -show_frames 参数查看视频中的帧信息:**
    {
    "media_type": "video",
    "stream_index": 1,
    "key_frame": 0,
    "pkt_pts": 27275,
    "pkt_pts_time": "45.458333",
    "pkt_dts": 27274,
    "pkt_dts_time": "45.456667",
    "best_effort_timestamp": 27275,
    "best_effort_timestamp_time": "45.458333",
    "pkt_duration": 20,
    "pkt_duration_time": "0.033333",
    "pkt_pos": "4519791",
    "pkt_size": "970",
    "width": 568,
    "height": 320,
    "pix_fmt": "yuv420p",
    "pict_type": "B",
    "coded_picture_number": 1364,
    "display_picture_number": 0,
    "interlaced_frame": 0,
    "top_field_first": 0,
    "repeat_pict": 0
    },
    -show_frames打印出来的信息都是帧相关的,包括视频帧和音频帧,其中主要的数据及其含义如下:

key_frame:是否是关键帧
pkt_pts:帧的pts数值
pkt_pts_time:通过time_base计算出来的显示时间
pkt_dts:帧的dts数值
pkt_dts_time:通过time_base计算出来的dts时间
pict_type:帧类型(I、B、P)

  1. 使用 -show_streams 参数查看视频中的流信息:
    "index": 1,
    "codec_name": "h264",
    "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
    "profile": "Main",
    "codec_type": "video",
    "codec_time_base": "464/27825",
    "codec_tag_string": "avc1",
    "codec_tag": "0x31637661",
    "width": 568,
    "height": 320,
    "coded_width": 568,
    "coded_height": 320,
    "has_b_frames": 0,
    "sample_aspect_ratio": "0:1",
    "display_aspect_ratio": "0:1",
    "pix_fmt": "yuv420p",
    "level": 30,
    "color_range": "tv",
    "color_space": "bt709",
    "color_transfer": "bt709",
    "color_primaries": "bt709",
    "chroma_location": "left",
    "refs": 1,
    "is_avc": "true",
    "nal_length_size": "4",
    "r_frame_rate": "30000/1001",
    "avg_frame_rate": "27825/928",
    "time_base": "1/600",
    "start_pts": 0,
    "start_time": "0.000000",
    "duration_ts": 29696,
    "duration": "49.493333",
    "bit_rate": "705282",
    "bits_per_raw_sample": "8",
    "nb_frames": "1484",
    "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": "2016-12-22T03:35:39.000000Z",
    "language": "und",
    "handler_name": "Core Media Video"
    }
    以上便是打印出来的信息,主要的就是编码格式、原始数据格式、time_base和码率等信息是使用较多的。
  2. ** 使用 -show_packets 参数查看包信息:**
    {
    "codec_type": "video",
    "stream_index": 1,
    "pts": 28676,
    "pts_time": "47.793333",
    "dts": 28675,
    "dts_time": "47.791667",
    "duration": 20,
    "duration_time": "0.033333",
    "size": "1199",
    "pos": "4737832",
    "flags": "__"
    },
    同上,主要输出的都是关于流类型和pts、dts等信息。

上面的参数可以获得音视频相关的各种参数,但是显示的可能比较乱,所以可以使用下面的参数进行输出的格式化:

-of 或者 -print_format + compact/csv/flat/ini/json/xml

同时,可以通过使用如下参数进行视频流或者音频流的选择:

-select_streams + a(音频) / v(视频)

利用好这个工具,可以在进行音视频编解码的时候对时间戳等信息进行更好的校对;同时在进行音视频流卡顿的分析的时候也很有用处,比如可以通过观察pts等信息查看是否有时间戳回退等问题的存在。

后续如果有新的收获还会继续更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容