Video ffprobe获取最后一个音频/视频包的pts

Video ffprobe获取最后一个音频/视频包的pts,video,ffmpeg,ffprobe,pts,Video,Ffmpeg,Ffprobe,Pts,我有一个mov文件,我需要它来获取音频和视频流的结尾pts。我可以通过(手动)执行以下操作来完成此操作: ffprobe-显示包文件.mov 这给了我一个类似的输出(当然还有更多的数据包): 在上述场景中,音频的结束时间为221764,视频的结束时间为30000(pts+duration) 我想知道是否有一种简单的方法可以直接通过ffprobe标志获取最终的音频/视频包pts,或者智能地解析输出。Run ffprobe -v 0 -show_entries packet=pts,duration

我有一个
mov
文件,我需要它来获取音频和视频流的结尾
pts
。我可以通过(手动)执行以下操作来完成此操作:

ffprobe-显示包文件.mov

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

在上述场景中,音频的结束时间为
221764
,视频的结束时间为
30000
pts+duration

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

Run

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
的形式打印值,其中第一个值是pts,第二个值是视频流最后一个数据包的持续时间


您只需确保
-read\u interval
的值(以秒为单位)等于或大于文件的持续时间<代码>999999是一个安全值。视频流需要尾部,因为ffprobe将打印整个最后一张GOP。

天哪,你在摇滚吉安!这太完美了!
ffprobe -v 0 -show_entries packet=pts,duration -of compact=p=0:nk=1 -read_intervals 999999 -select_streams v video.mp4  | tail -1