当我在我的视频上运行以下行时,它只输出 P 帧和 B 帧而没有 I 帧,
ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv 00000.MTS
视频怎么可能没有I帧。
Here是视频的链接。
根据this教程的定义,P帧只是建立在之前的帧之上,如果没有其他帧可以建立在我们如何使用P帧?
ffprobe -i 00000.MTS
的输出是:
...
Input #0, mpegts, from '00000.MTS':
Duration: 00:17:13.24, start: 1.040000, bitrate: 16451 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 256 kb/s
Stream #0:2[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
最佳答案
我在共享的示例视频中看到大量 I 帧。
运行
ffprobe videotoshare.mts -show_entries frame=key_frame,pict_type,pkt_pts_time -select_streams v -of compact -v 0 | grep ame=1
frame|key_frame=1|pkt_pts_time=1.520000|pict_type=I
frame|key_frame=1|pkt_pts_time=2.040000|pict_type=I
frame|key_frame=1|pkt_pts_time=2.560000|pict_type=I
frame|key_frame=1|pkt_pts_time=3.080000|pict_type=I
frame|key_frame=1|pkt_pts_time=3.600000|pict_type=I
frame|key_frame=1|pkt_pts_time=4.120000|pict_type=I
frame|key_frame=1|pkt_pts_time=4.640000|pict_type=I
frame|key_frame=1|pkt_pts_time=5.160000|pict_type=I
完整视频显示了类似的读数
ffprobe videotoshare-full.mts -show_entries frame=key_frame,pict_type,pkt_pts_time -select_streams v -of compact -v 0 | grep ame=1
frame|key_frame=1|pkt_pts_time=1.120000|pict_type=I
frame|key_frame=1|pkt_pts_time=1.640000|pict_type=I
frame|key_frame=1|pkt_pts_time=2.160000|pict_type=I
frame|key_frame=1|pkt_pts_time=2.680000|pict_type=I
frame|key_frame=1|pkt_pts_time=3.200000|pict_type=I
frame|key_frame=1|pkt_pts_time=3.720000|pict_type=I
关于video - 我的视频没有关键帧,这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48608792/