Html 通过ffmpeg widthout预加载创建在线播放的mp4视频

Html 通过ffmpeg widthout预加载创建在线播放的mp4视频,html,video,ffmpeg,video-streaming,mp4,Html,Video,Ffmpeg,Video Streaming,Mp4,我使用ffmpeg创建一个可流化的mp4视频文件供在线播放。但是,转换后的视频尝试在开始时加载3-4 MB的视频数据。然后视频可以播放和观看 我尝试通过不同的ffmpeg命令删除启动加载数据。但每个命令都有问题 我的第一个命令在开始时加载3-4 MB的视频数据并可查看: ffmpeg -i file.mkv -movflags faststart -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10

我使用ffmpeg创建一个可流化的mp4视频文件供在线播放。但是,转换后的视频尝试在开始时加载3-4 MB的视频数据。然后视频可以播放和观看

我尝试通过不同的ffmpeg命令删除启动加载数据。但每个命令都有问题

我的第一个命令在开始时加载3-4 MB的视频数据并可查看:

ffmpeg -i file.mkv -movflags faststart -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 1.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags faststart -frag_size 1024 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 1.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -frag_size 10240 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -frag_duration 2000 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags faststart -frag_duration 2000 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags frag_keyframe+empty_moov -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -g 52 -movflags frag_keyframe+empty_moov -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
和其他命令在开始时删除3-4 MB的加载数据,但不可查看:

ffmpeg -i file.mkv -movflags faststart -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 1.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags faststart -frag_size 1024 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 1.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -frag_size 10240 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i DespicableMe2MiniMovie.mkv -movflags faststart -frag_duration 2000 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags faststart -frag_duration 2000 -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -movflags frag_keyframe+empty_moov -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
ffmpeg -i CloudywithaChanceofMeatballs.mkv -g 52 -movflags frag_keyframe+empty_moov -s 500x268 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -b:v 100k -b:a 45k 2.mp4
我使用这个命令在开始时加载3-4 MB的视频数据,就像ffmpeg的第一个代码一样:

MP4Box -add video.mp4 videos.mp4
MP4Box -inter 500 video.mp4

我的视频文件持续时间为:1小时34分钟,转换大小为~100MB

通常视频播放器在缓冲区中积累足够的数据,以便能够播放。缓冲区大小可能有所不同,但最长可达10-30秒

如果您想更快地开始,那么可以看看可流化格式,例如HLS或MPEG-DASH。一些平台本机支持这些格式,例如,在iOS和Android上支持HLS

其思想是HLS可以引用具有不同比特率的多个版本的视频,并且根据您的网络条件,它可以根据网络速度动态调整质量。此外,通常播放器以最低比特率开始播放,因此需要下载的数据较少,然后逐渐切换到更高的比特率


苹果公司有很好的工具和文档来说明如何为流媒体制作视频。

我的视频比特率约为128Kbps,每秒16KB。我对持续时间小于5分钟的视频没有这个问题。在我的视频中4MB预加载1小时34分钟,100MB意味着加载~22分钟预加载!!!我认为这个问题是针对视频片段的。你可以使用isoviewer工具检查你的mp4文件,也可以尝试使用片段化的mp4-