我是初学者ffmpeg
,需要知道如何在 Linux 中使用来在播放视频时ffplay
显示。pts_time
我对查看每个帧感兴趣pts_time
。这样我就可以检查广告拦截器是否以 IDR 帧开头。
在 Windows 机器上,我使用以下命令来识别 adbock 是否以 IDR 帧开头(通过使用pts-time
信息):
ffplay -vf "drawtext=fontfile=/Tools/ffmpeg/arial.ttf:text='%{pts}%{pict_type}':fontsize=(h/10):box=1:x=(w-tw)/2:y=h-(2*lh)" c:/video.ts
ffprobe -show_frames -show_entries frame=pts_time,pict_type,key_frame -select_streams v c:/video.ts | grep -E --after-context=5 --before-context=5 "49635.045689"`
我需要显示如附图所示的 PTS 时间: 带 pts-time 的视频
在 Linux 中,我可以使用命令播放视频pts-time
,并借助 VcXsrv Windows X Server 从我的 Windows PC 访问 Linux 服务器的图形界面。
通过以下ffprobe
命令,我可以看到帧的详细信息以及pts_time
每个帧的详细信息:
ffprobe -select_streams v -show_frames video.ts
*[FRAME]
media_type=video
stream_index=5
**key_frame=1** */* it is a IDR frame*
pkt_pts=4467154112
**pkt_pts_time=49635.045689**
pkt_dts=4467155912
pkt_dts_time=49635.065689
best_effort_timestamp=4467154112
best_effort_timestamp_time=49635.045689
pkt_duration=1800
pkt_duration_time=0.020000
pkt_pos=2262204
pkt_size=46939
width=1280
height=1080
pix_fmt=yuv420p
sample_aspect_ratio=3:2
pict_type=I
coded_picture_number=21
display_picture_number=0
interlaced_frame=1
top_field_first=1
repeat_pict=0
color_range=tv
color_space=bt709
color_primaries=bt709
color_transfer=bt709
chroma_location=left
[SIDE_DATA]
任何想法?