使用媒体源api对不同gop大小的mp4进行自适应比特率流传输



我想要不同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_frameshttps://ffmpeg.org/ffmpeg.html#Advanced-关于如何在固定psoons下强制KF的视频选项。

最新更新