I have successfully encoded a file to .mp4 using ffmpeg which will play in all tested devices (Safari on PC, IE on PC, Android Browser, Andriod Video Player, and Safari iPad), except for Chrome.
As a work-around, I had planned to simply list the .ogg source prior to the .mp4 source so that chrome would play the .ogg source without even seeing the .mp4 source, however, I ran into the issue mentioned here.
Basically, I am after the proper ffmpeg command which will encode an .mp4 video to standards which will play in Chrome - of course without losing playback functionality on any of the other previously mentioned platforms.
I have tried several combinations, such as:
ffmpeg -i [filename].wmv -vprofile baseline -level 30 -vf scale=640:-1 -movflags faststart [filename].mp4
etc. but have not yet found the winning one.
EDIT: I tried:
ffmpeg_new -i [filename].wmv -strict experimental –acodec libvo_aacenc -ac 2 -ab 160k -vcodec libx264 -vf scale=640:-1 -pix_fmt yuv420p -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b 1200k -f mp4 -threads 0 [filename].mp4
And here is the ffmpeg output:
ffmpeg version N-54207-ge59fb3f Copyright (c) 2000-2013 the FFmpeg developers built on Jun 25 2013 21:55:00 with gcc 4.7.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
enable-libxvid --enable-zlib
libavutil 52. 37.101 / 52. 37.101
libavcodec 55. 17.100 / 55. 17.100
libavformat 55. 10.100 / 55. 10.100
libavdevice 55. 2.100 / 55. 2.100
libavfilter 3. 77.101 / 3. 77.101
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
[asf @ 000000000254f9e0] Stream #0: not enough frames to estimate rate; consider
increasing probesize
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, asf, from 'C:\vidtests\Wildlife.wmv':
Metadata:
SfOriginalFPS : 299700
WMFSDKVersion : 11.0.6001.7000
WMFSDKNeeded : 0.0.0.0000
comment : Footage: Small World Productions, Inc; Tourism New Zealand
| Producer: Gary F. Spradling | Music: Steve Ball
title : Wildlife in HD
copyright : © 2008 Microsoft Corporation
IsVBR : 0
DeviceConformanceTemplate: AP@L3
Duration: 00:00:30.09, start: 0.000000, bitrate: 6977 kb/s
Stream #0:0(eng): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp
, 192 kb/s
Stream #0:1(eng): Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1280x7
20, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc
Please use -b:a or -b:v, -b is ambiguous
[libx264 @ 000000000264faa0] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
[libx264 @ 000000000264faa0] profile Constrained Baseline, level 3.0
[libx264 @ 000000000264faa0] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC cod
ec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 r
ef=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed
_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pski
p=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 deci
mate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyi
nt=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1
bitrate=1200 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=10000
vbv_bufsize=10000 nal_hrd=none ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'C:\vidtests\Wildlife_SE1.mp4':
Metadata:
SfOriginalFPS : 299700
WMFSDKVersion : 11.0.6001.7000
WMFSDKNeeded : 0.0.0.0000
comment : Footage: Small World Productions, Inc; Tourism New Zealand
| Producer: Gary F. Spradling | Music: Steve Ball
title : Wildlife in HD
copyright : © 2008 Microsoft Corporation
IsVBR : 0
DeviceConformanceTemplate: AP@L3
encoder : Lavf55.10.100
Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 6
40x360, q=-1--1, 1200 kb/s, 30k tbn, 29.97 tbc
Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100
Hz, stereo, s16, 160 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (vc1 -> libx264)
Stream #0:0 -> #0:1 (wmav2 -> libvo_aacenc)
Press [q] to stop, [?] for help
frame= 59 fps= 55 q=32.0 size= 0kB time=00:00:00.16 bitrate= 2.3kbits/
frame= 66 fps= 42 q=31.0 size= 0kB time=00:00:00.40 bitrate= 1.0kbits/
frame= 75 fps= 35 q=31.0 size= 0kB time=00:00:00.70 bitrate= 0.5kbits/
frame= 84 fps= 31 q=31.0 size= 0kB time=00:00:01.00 bitrate= 0.4kbits/
frame= 93 fps= 29 q=31.0 size= 0kB time=00:00:01.30 bitrate= 0.3kbits/
frame= 102 fps= 27 q=31.0 size= 0kB time=00:00:01.60 bitrate= 0.2kbits/
frame= 111 fps= 26 q=31.0 size= 38kB time=00:00:01.90 bitrate= 165.1kbits/
Queue input is backward in time
[mp4 @ 000000000264f2c0] Non-monotonous DTS in output stream 0:1; previous: 7616
, current: 7063; changing to 7617. This may result in incorrect timestamps in th
e output file.
frame= 120 fps= 25 q=31.0 size= 107kB time=00:00:02.20 bitrate= 397.7kbits/
frame= 128 fps= 24 q=31.0 size= 161kB time=00:00:02.46 bitrate= 534.1kbits/
frame= 137 fps= 23 q=31.0 size= 194kB time=00:00:02.76 bitrate= 572.6kbits/
frame= 145 fps= 23 q=31.0 size= 219kB time=00:00:03.03 bitrate= 592.1kbits/
frame= 153 fps= 22 q=31.0 size= 273kB time=00:00:03.30 bitrate= 677.8kbits/
frame= 162 fps= 22 q=31.0 size= 317kB time=00:00:03.60 bitrate= 720.8kbits/
frame= 170 fps= 21 q=31.0 size= 366kB time=00:00:03.87 bitrate= 775.2kbits/
frame= 177 fps= 21 q=31.0 size= 451kB time=00:00:04.10 bitrate= 900.2kbits/
frame= 193 fps= 21 q=31.0 size= 602kB time=00:00:04.63 bitrate=1062.7kbits/
frame= 208 fps= 22 q=30.0 size= 755kB time=00:00:05.13 bitrate=1204.2kbits/
frame= 219 fps= 22 q=30.0 size= 769kB time=00:00:05.50 bitrate=1143.6kbits/
frame= 228 fps= 21 q=30.0 size= 790kB time=00:00:05.80 bitrate=1114.5kbits/
frame= 234 fps= 21 q=31.0 size= 806kB time=00:00:06.00 bitrate=1098.7kbits/
frame= 243 fps= 21 q=31.0 size= 806kB time=00:00:06.30 bitrate=1046.4kbits/
frame= 251 fps= 21 q=31.0 size= 831kB time=00:00:06.57 bitrate=1035.6kbits/
frame= 260 fps= 20 q=31.0 size= 860kB time=00:00:06.87 bitrate=1024.6kbits/
frame= 273 fps= 21 q=31.0 size= 934kB time=00:00:07.30 bitrate=1046.7kbits/
frame= 288 fps= 21 q=30.0 size= 1019kB time=00:00:07.80 bitrate=1068.7kbits/
frame= 302 fps= 21 q=30.0 size= 1066kB time=00:00:08.27 bitrate=1055.8kbits/
frame= 314 fps= 21 q=29.0 size= 1146kB time=00:00:08.67 bitrate=1082.1kbits/
frame= 328 fps= 21 q=28.0 size= 1189kB time=00:00:09.14 bitrate=1065.6kbits/
frame= 341 fps= 21 q=28.0 size= 1247kB time=00:00:09.57 bitrate=1066.7kbits/
frame= 352 fps= 22 q=27.0 size= 1274kB time=00:00:09.94 bitrate=1049.3kbits/
frame= 365 fps= 22 q=27.0 size= 1298kB time=00:00:10.37 bitrate=1024.7kbits/
frame= 376 fps= 22 q=27.0 size= 1349kB time=00:00:10.74 bitrate=1028.7kbits/
frame= 388 fps= 22 q=26.0 size= 1378kB time=00:00:11.14 bitrate=1012.9kbits/
frame= 401 fps= 22 q=26.0 size= 1415kB time=00:00:11.57 bitrate=1001.4kbits/
frame= 412 fps= 22 q=26.0 size= 1454kB time=00:00:11.94 bitrate= 996.9kbits/
frame= 421 fps= 22 q=27.0 size= 1489kB time=00:00:12.24 bitrate= 996.2kbits/
frame= 431 fps= 21 q=27.0 size= 1509kB time=00:00:12.57 bitrate= 982.7kbits/
frame= 441 fps= 21 q=28.0 size= 1555kB time=00:00:12.91 bitrate= 986.6kbits/
frame= 450 fps= 21 q=28.0 size= 1599kB time=00:00:13.21 bitrate= 991.7kbits/
frame= 460 fps= 21 q=28.0 size= 1621kB time=00:00:13.54 bitrate= 980.4kbits/
frame= 470 fps= 21 q=28.0 size= 1660kB time=00:00:13.88 bitrate= 979.9kbits/
frame= 480 fps= 21 q=28.0 size= 1734kB time=00:00:14.21 bitrate= 999.2kbits/
frame= 489 fps= 21 q=29.0 size= 1834kB time=00:00:14.51 bitrate=1035.3kbits/
frame= 499 fps= 21 q=29.0 size= 1890kB time=00:00:14.84 bitrate=1042.8kbits/
frame= 508 fps= 21 q=29.0 size= 1962kB time=00:00:15.14 bitrate=1060.8kbits/
frame= 519 fps= 21 q=29.0 size= 2061kB time=00:00:15.51 bitrate=1087.9kbits/
frame= 531 fps= 21 q=29.0 size= 2189kB time=00:00:15.91 bitrate=1126.6kbits/
frame= 540 fps= 21 q=29.0 size= 2329kB time=00:00:16.21 bitrate=1176.4kbits/
frame= 551 fps= 21 q=29.0 size= 2439kB time=00:00:16.58 bitrate=1204.8kbits/
frame= 562 fps= 21 q=29.0 size= 2569kB time=00:00:16.95 bitrate=1241.8kbits/
frame= 575 fps= 21 q=29.0 size= 2688kB time=00:00:17.38 bitrate=1266.9kbits/
frame= 581 fps= 21 q=29.0 size= 2749kB time=00:00:17.58 bitrate=1280.6kbits/
frame= 589 fps= 21 q=29.0 size= 2785kB time=00:00:17.85 bitrate=1278.1kbits/
frame= 595 fps= 21 q=30.0 size= 2808kB time=00:00:18.05 bitrate=1274.5kbits/
frame= 602 fps= 20 q=30.0 size= 2903kB time=00:00:18.28 bitrate=1300.7kbits/
frame= 610 fps= 20 q=31.0 size= 3008kB time=00:00:18.55 bitrate=1328.2kbits/
frame= 616 fps= 20 q=31.0 size= 3128kB time=00:00:18.75 bitrate=1366.6kbits/
frame= 625 fps= 20 q=31.0 size= 3238kB time=00:00:19.05 bitrate=1392.5kbits/
frame= 633 fps= 20 q=31.0 size= 3320kB time=00:00:19.31 bitrate=1407.9kbits/
frame= 642 fps= 20 q=31.0 size= 3397kB time=00:00:19.61 bitrate=1418.4kbits/
frame= 652 fps= 20 q=31.0 size= 3437kB time=00:00:19.95 bitrate=1411.1kbits/
frame= 661 fps= 20 q=31.0 size= 3511kB time=00:00:20.25 bitrate=1420.3kbits/
frame= 669 fps= 20 q=31.0 size= 3578kB time=00:00:20.52 bitrate=1428.2kbits/
frame= 679 fps= 20 q=31.0 size= 3606kB time=00:00:20.85 bitrate=1416.6kbits/
frame= 691 fps= 20 q=32.0 size= 3670kB time=00:00:21.25 bitrate=1414.5kbits/
frame= 701 fps= 20 q=32.0 size= 3798kB time=00:00:21.58 bitrate=1441.2kbits/
frame= 713 fps= 20 q=32.0 size= 3901kB time=00:00:21.98 bitrate=1453.3kbits/
frame= 723 fps= 20 q=32.0 size= 3969kB time=00:00:22.32 bitrate=1456.6kbits/
frame= 735 fps= 20 q=32.0 size= 4027kB time=00:00:22.72 bitrate=1451.7kbits/
frame= 744 fps= 20 q=32.0 size= 4102kB time=00:00:23.02 bitrate=1459.6kbits/
frame= 755 fps= 20 q=32.0 size= 4135kB time=00:00:23.39 bitrate=1448.3kbits/
frame= 764 fps= 20 q=32.0 size= 4172kB time=00:00:23.69 bitrate=1442.7kbits/
frame= 776 fps= 20 q=32.0 size= 4216kB time=00:00:24.09 bitrate=1433.5kbits/
frame= 787 fps= 20 q=32.0 size= 4254kB time=00:00:24.45 bitrate=1424.8kbits/
frame= 802 fps= 20 q=32.0 size= 4337kB time=00:00:24.95 bitrate=1423.6kbits/
frame= 815 fps= 20 q=32.0 size= 4369kB time=00:00:25.39 bitrate=1409.6kbits/
frame= 828 fps= 20 q=32.0 size= 4450kB time=00:00:25.82 bitrate=1411.5kbits/
frame= 840 fps= 20 q=32.0 size= 4467kB time=00:00:26.22 bitrate=1395.3kbits/
frame= 852 fps= 20 q=32.0 size= 4550kB time=00:00:26.62 bitrate=1399.8kbits/
frame= 865 fps= 20 q=32.0 size= 4594kB time=00:00:27.06 bitrate=1390.7kbits/
frame= 877 fps= 20 q=32.0 size= 4629kB time=00:00:27.46 bitrate=1380.9kbits/
frame= 889 fps= 20 q=32.0 size= 4689kB time=00:00:27.86 bitrate=1378.6kbits/
frame= 900 fps= 20 q=32.0 size= 4740kB time=00:00:28.22 bitrate=1375.6kbits/
frame= 901 fps= 19 q=-1.0 Lsize= 5203kB time=00:00:30.10 bitrate=1416.0kbits
/s
video:4586kB audio:590kB subtitle:0 global headers:0kB muxing overhead 0.532558%
[libx264 @ 000000000264faa0] frame I:8 Avg QP:22.98 size: 31700
[libx264 @ 000000000264faa0] frame P:893 Avg QP:27.55 size: 4974
[libx264 @ 000000000264faa0] mb I I16..4: 34.6% 0.0% 65.4%
[libx264 @ 000000000264faa0] mb P I16..4: 0.8% 0.0% 1.5% P16..4: 41.4% 18.8
% 8.5% 0.0% 0.0% skip:29.0%
[libx264 @ 000000000264faa0] final ratefactor: 24.50
[libx264 @ 000000000264faa0] coded y,uvDC,uvAC intra: 64.3% 76.0% 36.7% inter: 2
3.5% 19.6% 0.7%
[libx264 @ 000000000264faa0] i16 v,h,dc,p: 34% 33% 11% 22%
[libx264 @ 000000000264faa0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 16% 12% 9% 12%
11% 12% 7% 8%
[libx264 @ 000000000264faa0] i8c dc,h,v,p: 55% 23% 14% 7%
[libx264 @ 000000000264faa0] ref P L0: 72.3% 12.0% 8.1% 3.7% 3.9%
[libx264 @ 000000000264faa0] kb/s:1249.53
But still no luck. The .mp4 will play in every compatible device/browser combination I have tried except for chrome.. Any advice?
TIA.
The solution is to use the parameter "-pix_fmt yuv420p":
ps>ffmpeg.exe -i $input\$file -y -strict experimental -acodec aac -ac 2 -ab 160k -vcodec libx264 -s 640x480 -pix_fmt yuv420p -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b 1200k -f mp4 -threads 0 $output\$file.iphone.mp4
ffmpeg version N-46936-g8b6aeb1
Hopes this can help you with getting chrome compatible videos
Update1
See reference it may help you
Another source of error could be the transfer, rather than the decoding, of the video.
Try opening the ones that don't work using a "file://..." url: If that works, the problem is with the transport and has nothing to do with h264 or mp4.
Although both the given files play fine in my Chrome when hosted as html5, I see such a transport problem with an even bigger mp4 file. In that case, I can see cancelled requests in fiddler.
It appears to be a bug in Chrome and I have not yet found a workaround.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With