ffmpeg - 使视频可跳过/可搜索

ffmpeg - 使视频可跳过/可搜索

我从我的大学网站下载了一些讲座,但它们似乎无法通过点击视频播放器上的特定时间戳或向前跳过 5/10 秒(例如使用 VLC 或 MPC-BE 上的箭头)正确查找/跳过,播放会停止并显示静止帧

尝试ffmpeg -i input.mp4 -c:v copy -c:a copy output.mp4并不能解决问题

ffmpeg -hide_banner -i input.mp4输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.31.100
  Duration: 01:24:57.36, start: 0.000000, bitrate: 562 kb/s
  Stream #0:0[0x1](und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 430 kb/s, 25 fps, 25 tbr, 25 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.43.100 libopenh264
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_duration_time,pkt_pos -of csv input.mp4输出只显示一行,我不确定这是不是一个好兆头:

frame,0.040000,71

有没有办法可以解决这个问题而不需要重新编码整个视频?

EDIT1:ffprobe -select_streams v:0 -show_entries frame=key_frame,pict_type -of csv input.mp4 | grep -n "I" >> result.txt显示单个I帧:

1:frame,1,I

相关内容