2013-06-29 52 views
4

我已經使用ffmpeg將文件成功編碼爲.mp4,它將在所有測試過的設備(PC上的Safari,PC上的IE,Android Browser,Andriod Video Player和Safari iPad),除了Chrome。HTML5 Video Chrome - ffmpeg - mp4可以在Chrome中工作

作爲解決方法,我曾計劃在.mp4源文件之前簡單列出.ogg源文件,以便chrome在沒有看到.mp4源文件的情況下播放.ogg源文件,但是,我遇到了這個問題提到here

基本上,我在正確的ffmpeg命令之後會將.mp4視頻編碼爲可在Chrome中播放的標準 - 當然,在任何其他平臺上都不會丟失播放功能。

我曾嘗試多種組合,如:

ffmpeg -i [filename].wmv -vprofile baseline -level 30 -vf scale=640:-1 -movflags faststart [filename].mp4 

等,但還沒有找到獲勝的一個。

編輯:我想:

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 

這裏是ffmpeg的輸出:

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: [email protected] 
    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: [email protected] 
    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 

但仍沒有運氣。 .mp4將在我嘗試過的每個兼容設備/瀏覽器組合中播放,除了chrome ..有什麼建議嗎?

TIA。

+0

像往常一樣,您應該始終包含完整的ffmpeg控制檯輸出。 – LordNeckbeard

+0

@LordNeckbeard:添加了ffmpeg輸入/輸出。仍然無法在Chrome中使用。 – IIIOXIII

回答

9

的解決方案是使用參數「-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版本的N- 46936-g8b6aeb1

希望這可以幫助你獲得鉻兼容視頻

更新1

See reference它可能會幫助你

+0

正在編碼的視頻已經是yuv420p格式,因此不需要將其重新格式化爲yuv420p。無論如何,添加'pix_fmt yuv420p'沒有幫助。我從[](http://ffmpeg.zeranoe.com/builds/)下載的ffmpeg'N-54207-ge59fb3f'版本不包含aac音頻編解碼器或-presets選項,除此之外,我使用了你建議的相同的編碼字符串 - 但它並沒有產生可以被Chrome播放的mp4文件。 – IIIOXIII

+0

@Arhol:感謝您的參考,但是,沒有提供的代碼片段解決了我的問題。我仍然無法編碼可在Chrome中運行的.mp4文件。 – IIIOXIII

+0

「-pix_fmt yuv420p」:此解決方案適用於我,因爲我遇到同樣的問題。 –

0

請嘗試以下操作,我也有一些麻煩讓mp4文件在Chrome中工作。在我的情況下,即使我將mp4文件拖放到chrome中,mp4文件也無法正常工作。我希望你有同樣的問題。第一步你的mp4文件應該用H.264編碼。在我來說,我不得不改變以下設置: -

輸入chrome://標誌

搜索如下: -

禁用硬件加速的視頻解碼。

通過選擇禁用選項

重新啓動瀏覽器禁用上述設置。

檢查Chrome是否現在播放mp4文件。如果是,那麼HTML視頻也應該沒有任何問題。

1

Chrome可能會使用一些H.264視頻驅動加速,可能會破壞舊的驅動程序...嘗試update the video drivers,看看它是否工作。

2

錯誤的另一個來源可能是視頻的傳輸,而不是解碼。

嘗試打開那些使用「file:// ...」url不起作用的文件:如果可行,問題與傳輸有關,與h264或mp4無關。

雖然這兩個給定的文件在HTML5託管時在我的Chrome中運行良好,但我發現使用更大的mp4文件出現這樣的傳輸問題。在這種情況下,我可以在提琴手中看到取消的請求。

它似乎是Chrome中的一個錯誤,我還沒有找到解決方法。

相關問題