首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F探针获取最后一次音频/视频数据包的输出

F探针获取最后一次音频/视频数据包的输出
EN

Stack Overflow用户
提问于 2018-11-17 01:29:49
回答 1查看 7.9K关注 0票数 9

我有一个mov文件,我需要为音频和视频流获得结束pts。通过执行以下操作(手动),我就可以做到这一点:

ffprobe -show_packets file.mov

这给了我一个类似的输出(当然还有更多的数据包):

代码语言:javascript
复制
[PACKET]
codec_type=audio
stream_index=0
pts=221184
pts_time=5.015510
dts=221184
dts_time=5.015510
duration=580
duration_time=0.013152
convergence_duration=N/A
convergence_duration_time=N/A
size=304
pos=4833575
flags=K_
[/PACKET]
[PACKET]
codec_type=video
stream_index=1
pts=29800
pts_time=4.966667
dts=29400
dts_time=4.900000
duration=200
duration_time=0.033333
convergence_duration=N/A
convergence_duration_time=N/A
size=20707
pos=4837376
flags=__
[/PACKET]

在上面的场景中,结束脚本是用于音频的221764和用于视频的30000 (pts + duration)。

我想知道是否有一种简单的方法可以直接通过ff探测标志获得最终的音频/视频数据包,或者智能地解析输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-17 05:32:59

代码语言:javascript
复制
ffprobe -v 0 -show_entries packet=pts,duration -of compact=p=0:nk=1 -read_intervals 999999 -select_streams v video.mp4  | tail -1

这将以118231200|3600的形式打印值,其中第一个值是像素,第二个值是视频流的最后一个数据包的持续时间。

您只需要确保-read_intervals的值(以秒为单位)等于或大于文件的持续时间。999999是一个安全的值。对于视频流来说,尾巴是必需的,因为ff探头将打印整个最后一个GOP。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53347381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档