我想要不同gop关键帧大小的mp4视频的自适应比特率流。
我知道有多种用于多比特率流媒体的选项,例如hls,破折号等
但是我已经将视频上传到服务器上,每个视频都有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
谢谢!
答案 0 :(得分:0)
运行此命令,
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
之间的差异是“关键帧块持续时间”。
请注意,您只能通过重新编码视频来更改关键帧位置。而且,如果您要重新编码,则输入视频的关键帧位置无关紧要。有关如何以固定位置强制KF,请参见https://ffmpeg.org/ffmpeg.html#Advanced-Video-options下的-force_key_frames
。