Question

i using ffmpeg to create a streamable mp4 video file for play online. but converted video try to load 3 - 4 MB data of video at start. then video can be play and seekable.

i try to remove start load data by different ffmpeg commands. but each commands had problems.

my first command(load 3-4 MB data of video at start and seekable):

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

and other commands(removed 3-4 MB load data at start and NOT seekable):

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

i used this command too(it load 3-4 MB data of video at start and seekable like first code by ffmpeg):

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

my video file duration is: 1h 34min and converted size is ~100MB

Was it helpful?

Solution

Usually video players accumulate enough data in buffers to be able to play. The buffer size may vary, but it can be up to 10-30 seconds.

If you want a faster start, then have a look at streamable formats, such as HLS or MPEG-DASH. Some platforms support these formats natively, for example, HLS is supported on iOS and Android.

The idea is that HLS has references to multiple versions of your video with different bitrates and depending on your network conditions it may dynamically adjust quality to the network speed. Also, usually players start playback with the lowest bitrate, so it will need less data to download, and then gradually will switch to higher bitrates.

Apple has good tools and documentation about how to prepare videos for streaming.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top