我想要不同gop关键帧大小的mp4视频的自适应比特率流。
我知道有几个多比特率流媒体选项,即hls、dash等
但我已经在服务器上上传了视频,每个视频都有360p、480p和720p的mp4文件,每个视频的关键帧间隔不同。
因此,真正的挑战是使用媒体源api 制作自己的多比特率mp4媒体播放器
我对各个方面都有头脑风暴。
我们只能在关键帧处剪切h264
因此,我真正的挑战是了解mp4文件中每个关键帧的视频、关键帧块持续时间、偏移持续时间和偏移字节位置。
所以我的问题是如何使用ffmpeg、ffprobe或任何其他软件获得以下内容。
1-关键帧块持续时间
2-偏移视频持续时间
3-视频中的偏移字节位置。
下面的ffprobe命令给出了每个关键帧的详细信息,也许这将有助于
ffprobe -i "1080p.mp4" -select_streams v -skip_frame nokey -show_frames
谢谢!
运行此命令,
ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_dts_time,pkt_pos -of csv "video.mp4"
然后
pkt_dts_time
为GOP提供"偏移视频持续时间"。
pkt_pos
为GOP的开始提供"偏移字节位置"。
关键帧的pkt_dts_time
和下一个关键帧的pkt_dts_time
之间的差异是"关键帧块持续时间"。
请注意,您只能通过重新编码视频来更改关键帧位置。如果要重新编码,输入视频的关键帧位置无关紧要。参见-force_key_frames
https://ffmpeg.org/ffmpeg.html#Advanced-关于如何在固定psoons下强制KF的视频选项。