It looks like the MOOV atom of the MP4 video file is at the end of the file.
We may moov the MOOV atom to the beginning of the file as described here:
ffmpeg -i input.mp4 -c copy -movflags faststart input_faststart.mp4
When FFmpeg starts demuxing (parsing) an MP4 file, the first thing it does, is looking for the MOOV atom.
Sine HTTP video URL is uses streaming like protocol, FFmpeg can't start reading from the end of the file - it may take long time to reach the MOOV atom (it might not work at all).
We may check if the MOOV atom is at the beginning or the end of the file as described here:
ffmpeg -v trace -i input.mp4 2>&1 | grep -e type:'mdat' -e type:'moov'
Output:
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000178f9cdf2c0] type:'mdat' parent:'root' sz: 23492883 48 23515923
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000178f9cdf2c0] type:'moov' parent:'root' sz: 23000 23492931 23515923
'moov'
comes second, so the MOOV atom is at the end.
Checking for input_faststart.mp4
:
ffmpeg -v trace -i input_faststart.mp4 2>&1 | grep -e type:'mdat' -e type:'moov'
Output:
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000228cf22f300] type:'moov' parent:'root' sz: 29393 40 23522316
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000228cf22f300] type:'mdat' parent:'root' sz: 23492883 29441 23522316
'moov'
comes first, so the MOOV atom is at the beginning.
Using your shared file as input:
ffmpeg -i "https://drive.usercontent.google.com/download?id=1fyq_AGVY52pfNGRjk82flpRvKDVZVBwk&export=download" -ss 23 -t 11.0 -y output.mp4 -loglevel trace -report
It looks like it's not working...
Using shared input_faststart.mp4
as input:
ffmpeg -i "https://drive.usercontent.google.com/download?id=11Zw-bSpKVEmQPBiimsdm0aa_e4Zu3eS8&export=download" -ss 23 -t 11.0 -y output.mp4 -loglevel trace -report
Takes about 20 seconds in my machine.