I use the following code to convert .webm
videos to .mp4
using the FFMPEG library:
ffmpeg -i video.webm -vcodec h264 -acodec aac -strict experimental video.mp4
This works flawless when playing the converted video in Windows (Chrome/Firefox), Mac (Safari/Chrome), Android (Chrome) but it does not work when watching through iOS (Safari/Chrome).
At first I thought it might be an mp4
problem? But then I played without any problems in my iOS Safari this video https://www.w3schools.com/html/mov_bbb.mp4 which is also a mp4
.
So this tells me that something is not quite right about the conversion.
What am I missing in the conversion?
Log from PuTTy: https://pastebin.com/VLSPL0nC
ffmpeg
is ancient. Download or compile a new version.-strict experimental
(that's only needed for really old builds).-movflags +faststart
so it can begin playback faster.-vf format=yuv420p
for a compatible pixel format.-c:a aac
) instead of MP3 (-c:a libmp3lame
).-profile:v main
. You don't need to add this if your device supports High profile.Example:
ffmpeg -i input -c:v libx264 -profile:v main -vf format=yuv420p -c:a aac -movflags +faststart output.mp4
Refer to the specifications of your target device to determine the appropriate -profile:v
(and possibly -level
).
See FFmpeg Wiki: H.264 for more info.