Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 我的视频没有关键帧,怎么可能?_Video_Ffmpeg_H.264_Ffprobe - Fatal编程技术网

Video 我的视频没有关键帧,怎么可能?

Video 我的视频没有关键帧,怎么可能?,video,ffmpeg,h.264,ffprobe,Video,Ffmpeg,H.264,Ffprobe,当我在视频上运行以下行时,它只输出p帧和B帧,不输出I帧 ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv 00000.MTS 视频怎么可能没有I帧呢。 是指向视频的链接。 根据教程的定义,P帧只是建立在前面的帧上,如果没有其他帧可以建立在上面,我们如何使用P帧? ffprobe-i 00000.MTS的输出为: ... Input #0, mpegts, from '00000.MTS':

当我在视频上运行以下行时,它只输出p帧和B帧,不输出I帧

ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv 00000.MTS
视频怎么可能没有I帧呢。
是指向视频的链接。
根据教程的定义,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
如中所述 :

p帧可以包含帧内宏块或预测宏块


因此,您的视频可以在p帧中包含I帧宏块。

我在共享示例视频中看到了大量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

我确实有这个问题。你能分享这个文件吗?@Mulvya我明天可以分享它的一部分,主文件太大了。好的,但至少值一分钟。@Mulvya这是链接,它在有限的时间内工作。帧内宏块是根据帧中的其他MBs预测的。但是,由所有帧内MBs组成的帧是一个I帧,作者没有看到任何帧。在剪切视频后,I帧插入.with
ffmpeg-I input.mts-t 60-c copy output.mp4
该方法无法创建任何新的关键帧。我尝试上载整个视频供您检查,今天。如果像
avconv。。。“-flags”“+global\u header”“-segment\u time”“60”“-f”“segment”
应该能够拆分这样的文件吗?我在这里得到一个文件,它说它正在分裂,但最后我只得到了一个完整大小的部分,并且有许多这样的日志行“[mp4@0x16cc8c1]pts没有值N/a time=01:34:23.44 bitrate=N/a”。如果可以拆分,我将创建一个新问题:)
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