我正在使用 ffmpeg 转换视频,但转换后它无法在 android 设备上运行,它显示无法播放此视频我正在使用的转换代码是:
exec('D:\wamp\bin\ffmpeg.exe -y -i D:/wamp/www/upload_google_drive/output.flv -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -b:a 192k -ac 2 D:/wamp/www/upload_google_drive/w3.mp4 2>&1',$output);
输出:
Array ( [0] => ffmpeg version N-77137-gff6dd58 Copyright (c) 2000-2015 the FFmpeg developers [1] => built with gcc 5.2.0 (GCC) [2] => configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib [3] => libavutil 55. 10.100 / 55. 10.100 [4] => libavcodec 57. 17.100 / 57. 17.100 [5] => libavformat 57. 19.100 / 57. 19.100 [6] => libavdevice 57. 0.100 / 57. 0.100 [7] => libavfilter 6. 20.100 / 6. 20.100 [8] => libswscale 4. 0.100 / 4. 0.100 [9] => libswresample 2. 0.101 / 2. 0.101 [10] => libpostproc 54. 0.100 / 54. 0.100 [11] => Input #0, flv, from 'D:/wamp/www/upload_google_drive/output.flv': [12] => Metadata: [13] => major_brand : mp42 [14] => minor_version : 1 [15] => compatible_brands: mp42avc1 [16] => encoder : Lavf57.19.100 [17] => Duration: 00:01:00.14, start: 0.000000, bitrate: 307 kb/s [18] => Stream #0:0: Video: flv1, yuv420p, 480x320, 200 kb/s, 24 fps, 24 tbr, 1k tbn, 1k tbc [19] => Stream #0:1: Audio: aac (LC), 44100 Hz, mono, fltp, 62 kb/s [20] => [libx264 @ 0000000001c31860] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 [21] => [libx264 @ 0000000001c31860] profile Constrained Baseline, level 3.0 [22] => [libx264 @ 0000000001c31860] 264 - core 148 r2638 7599210 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=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_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=19.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 [23] => Output #0, mp4, to 'D:/wamp/www/upload_google_drive/w5.mp4': [24] => Metadata: [25] => major_brand : mp42 [26] => minor_version : 1 [27] => compatible_brands: mp42avc1 [28] => encoder : Lavf57.19.100 [29] => Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 480x320, q=-1--1, 24 fps, 12288 tbn, 24 tbc [30] => Metadata: [31] => encoder : Lavc57.17.100 libx264 [32] => Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 192 kb/s [33] => Metadata: [34] => encoder : Lavc57.17.100 aac [35] => Stream mapping: [36] => Stream #0:0 -> #0:0 (flv1 (flv) -> h264 (libx264)) [37] => Stream #0:1 -> #0:1 (aac (native) -> aac (native)) [38] => Press [q] to stop, [?] for help [39] => frame= 55 fps=0.0 q=23.0 size= 27kB time=00:00:02.22 bitrate= 98.2kbits/s frame= 96 fps= 93 q=24.0 size= 137kB time=00:00:03.92 bitrate= 285.4kbits/s frame= 161 fps=105 q=24.0 size= 317kB time=00:00:06.64 bitrate= 391.6kbits/s frame= 220 fps=108 q=24.0 size= 541kB time=00:00:09.07 bitrate= 487.8kbits/s frame= 274 fps=108 q=24.0 size= 773kB time=00:00:11.35 bitrate= 557.8kbits/s frame= 326 fps=107 q=24.0 size= 1109kB time=00:00:13.53 bitrate= 671.4kbits/s Past duration 0.607994 too large [40] => Last message repeated 1 times [41] => Past duration 0.615990 too large [42] => Past duration 0.607994 too large [43] => frame= 382 fps=108 q=24.0 size= 1439kB time=00:00:15.81 bitrate= 745.6kbits/s Past duration 0.615990 too large [44] => Past duration 0.607994 too large [45] => Past duration 0.623985 too large [46] => Past duration 0.615990 too large [47] => Past duration 0.607994 too large [48] => Past duration 0.623985 too large [49] => Past duration 0.615990 too large [50] => Past duration 0.631996 too large [51] => Past duration 0.623985 too large [52] => Past duration 0.615990 too large [53] => Past duration 0.631996 too large [54] => Past duration 0.623985 too large [55] => Past duration 0.639992 too large [56] => Past duration 0.631996 too large [57] => Past duration 0.623985 too large [58] => Past duration 0.639992 too large [59] => Past duration 0.631996 too large [60] => Past duration 0.647987 too large [61] => Past duration 0.639992 too large [62] => Past duration 0.631996 too large [63] => Past duration 0.647987 too large [64] => Past duration 0.639992 too large [65] => Past duration 0.655998 too large [66] => Past duration 0.647987 too large [67] => Past duration 0.639992 too large [68] => Past duration 0.655998 too large [69] => Past duration 0.647987 too large [70] => Past duration 0.663994 too large [71] => Past duration 0.655998 too large [72] => Past duration 0.647987 too large [73] => Past duration 0.663994 too large [74] => Past duration 0.655998 too large [75] => Past duration 0.671989 too large [76] => Past duration 0.663994 too large [77] => Past duration 0.655998 too large [78] => Past duration 0.671989 too large [79] => Past duration 0.663994 too large [80] => Past duration 0.679985 too large [81] => Past duration 0.671989 too large [82] => Past duration 0.663994 too large [83] => Past duration 0.679985 too large [84] => Past duration 0.671989 too large [85] => Past duration 0.687996 too large [86] => Past duration 0.679985 too large [87] => Past duration 0.671989 too large [88] => Past duration 0.687996 too large [89] => Past duration 0.679985 too large [90] => Past duration 0.695992 too large [91] => Past duration 0.687996 too large [92] => Past duration 0.679985 too large [93] => Past duration 0.695992 too large [94] => Past duration 0.687996 too large [95] => Past duration 0.703987 too large [96] => Past duration 0.695992 too large [97] => frame= 436 fps=108 q=24.0 size= 1732kB time=00:00:18.08 bitrate= 784.5kbits/s Past duration 0.687996 too large [98] => Past duration 0.703987 too large [99] => Past duration 0.695992 too large [100] => Past duration 0.711998 too large [101] => Past duration 0.703987 too large [102] => Past duration 0.695992 too large [103] => Past duration 0.711998 too large [104] => Past duration 0.703987 too large [105] => Past duration 0.719994 too large [106] => Past duration 0.711998 too large [107] => Past duration 0.703987 too large [108] => Past duration 0.719994 too large [109] => Past duration 0.711998 too large [110] => Past duration 0.727989 too large [111] => Past duration 0.719994 too large [112] => Past duration 0.711998 too large [113] => Past duration 0.727989 too large [114] => Past duration 0.719994 too large [115] => Past duration 0.735985 too large [116] => Past duration 0.727989 too large [117] => Past duration 0.719994 too large [118] => Past duration 0.735985 too large [119] => Past duration 0.727989 too large [120] => Past duration 0.743996 too large [121] => Past duration 0.735985 too large [122] => Past duration 0.727989 too large [123] => Past duration 0.743996 too large [124] => Past duration 0.735985 too large [125] => Past duration 0.751991 too large [126] => Past duration 0.743996 too large [127] => Past duration 0.735985 too large [128] => Past duration 0.751991 too large [129] => Past duration 0.743996 too large [130] => Past duration 0.759987 too large [131] => Past duration 0.751991 too large [132] => Past duration 0.743996 too large [133] => Past duration 0.759987 too large [134] => Past duration 0.751991 too large [135] => Past duration 0.767998 too large [136] => Past duration 0.759987 too large [137] => Past duration 0.751991 too large [138] => Past duration 0.767998 too large [139] => Past duration 0.759987 too large [140] => Past duration 0.775993 too large [141] => Past duration 0.767998 too large [142] => Past duration 0.759987 too large [143] => Past duration 0.775993 too large [144] => Past duration 0.767998 too large [145] => Past duration 0.783989 too large [146] => Past duration 0.775993 too large [147] => Past duration 0.767998 too large [148] => Past duration 0.783989 too large [149] => Past duration 0.775993 too large [150] => Past duration 0.792000 too large [151] => Past duration 0.783989 too large [152] => Past duration 0.775993 too large [153] => Past duration 0.792000 too large [154] => Past duration 0.783989 too large [155] => Past duration 0.799995 too large [156] => Past duration 0.792000 too large [157] => Past duration 0.783989 too large [158] => Past duration 0.799995 too large [159] => Past duration 0.792000 too large [160] => Past duration 0.807991 too large [161] => Past duration 0.799995 too large [162] => Past duration 0.792000 too large [163] => Past duration 0.807991 too large [164] => Past duration 0.799995 too large [165] => Past duration 0.815987 too large [166] => Past duration 0.807991 too large [167] => Past duration 0.799995 too large [168] => Past duration 0.815987 too large [169] => frame= 508 fps=112 q=24.0 size= 1953kB time=00:00:21.10 bitrate= 758.1kbits/s Past duration 0.807991 too large [170] => Past duration 0.823997 too large [171] => Past duration 0.815987 too large [172] => Past duration 0.807991 too large [173] => Past duration 0.823997 too large [174] => Past duration 0.815987 too large [175] => Past duration 0.831993 too large [176] => Past duration 0.823997 too large [177] => Past duration 0.815987 too large [178] => Past duration 0.831993 too large [179] => Past duration 0.823997 too large [180] => Past duration 0.839989 too large [181] => Past duration 0.831993 too large [182] => Past duration 0.823997 too large [183] => Past duration 0.839989 too large [184] => Past duration 0.831993 too large [185] => Past duration 0.848000 too large [186] => Past duration 0.839989 too large [187] => Past duration 0.831993 too large [188] => Past duration 0.848000 too large [189] => Past duration 0.839989 too large [190] => Past duration 0.855995 too large [191] => Past duration 0.848000 too large [192] => Past duration 0.839989 too large [193] => Past duration 0.855995 too large [194] => Past duration 0.848000 too large [195] => Past duration 0.863991 too large [196] => Past duration 0.855995 too large [197] => Past duration 0.848000 too large [198] => Past duration 0.863991 too large [199] => Past duration 0.855995 too large [200] => Past duration 0.871986 too large [201] => Past duration 0.863991 too large [202] => Past duration 0.855995 too large [203] => Past duration 0.871986 too large [204] => Past duration 0.863991 too large [205] => Past duration 0.879997 too large [206] => Past duration 0.871986 too large [207] => Past duration 0.863991 too large [208] => Past duration 0.879997 too large [209] => Past duration 0.871986 too large [210] => Past duration 0.887993 too large [211] => Past duration 0.879997 too large [212] => Past duration 0.871986 too large [213] => Past duration 0.887993 too large [214] => Past duration 0.879997 too large [215] => Past duration 0.895988 too large [216] => Past duration 0.887993 too large [217] => Past duration 0.879997 too large [218] => Past duration 0.895988 too large [219] => Past duration 0.887993 too large [220] => Past duration 0.903999 too large [221] => Past duration 0.895988 too large [222] => Past duration 0.887993 too large [223] => Past duration 0.903999 too large [224] => Past duration 0.895988 too large [225] => Past duration 0.911995 too large [226] => Past duration 0.903999 too large [227] => Past duration 0.895988 too large [228] => Past duration 0.911995 too large [229] => Past duration 0.903999 too large [230] => Past duration 0.919991 too large [231] => Past duration 0.911995 too large [232] => frame= 571 fps=113 q=24.0 size= 2150kB time=00:00:23.68 bitrate= 743.7kbits/s Past duration 0.903999 too large [233] => Past duration 0.919991 too large [234] => Past duration 0.911995 too large [235] => Past duration 0.927986 too large [236] => Past duration 0.919991 too large [237] => Past duration 0.911995 too large [238] => Past duration 0.927986 too large [239] => Past duration 0.919991 too large [240] => Past duration 0.935997 too large [241] => Past duration 0.927986 too large [242] => Past duration 0.919991 too large [243] => Past duration 0.935997 too large [244] => Past duration 0.927986 too large [245] => Past duration 0.943993 too large [246] => Past duration 0.935997 too large [247] => Past duration 0.927986 too large [248] => Past duration 0.943993 too large [249] => Past duration 0.935997 too large [250] => Past duration 0.951988 too large [251] => Past duration 0.943993 too large [252] => Past duration 0.935997 too large [253] => Past duration 0.951988 too large [254] => Past duration 0.943993 too large [255] => Past duration 0.959999 too large [256] => Past duration 0.951988 too large [257] => Past duration 0.943993 too large [258] => Past duration 0.959999 too large [259] => Past duration 0.951988 too large [260] => Past duration 0.967995 too large [261] => Past duration 0.959999 too large [262] => Past duration 0.951988 too large [263] => Past duration 0.967995 too large [264] => Past duration 0.959999 too large [265] => Past duration 0.975990 too large [266] => Past duration 0.967995 too large [267] => Past duration 0.959999 too large [268] => Past duration 0.975990 too large [269] => Past duration 0.967995 too large [270] => Past duration 0.983986 too large [271] => Past duration 0.975990 too large [272] => Past duration 0.967995 too large [273] => Past duration 0.983986 too large [274] => Past duration 0.975990 too large [275] => Past duration 0.991997 too large [276] => Past duration 0.983986 too large [277] => Past duration 0.975990 too large [278] => Past duration 0.991997 too large [279] => Past duration 0.983986 too large [280] => Past duration 0.999992 too large [281] => Past duration 0.991997 too large [282] => Past duration 0.983986 too large [283] => frame= 622 fps=112 q=24.0 size= 2328kB time=00:00:25.82 bitrate= 738.7kbits/s Past duration 0.999992 too large [284] => Past duration 0.991997 too large [285] => Past duration 0.999992 too large [286] => Past duration 0.991997 too large [287] => Past duration 0.999992 too large [288] => Last message repeated 1 times [289] => frame= 672 fps=111 q=24.0 size= 2585kB time=00:00:27.91 bitrate= 758.8kbits/s frame= 719 fps=110 q=24.0 size= 2829kB time=00:00:29.86 bitrate= 776.0kbits/s frame= 765 fps=109 q=24.0 size= 3063kB time=00:00:31.76 bitrate= 789.8kbits/s frame= 812 fps=108 q=24.0 size= 3282kB time=00:00:33.71 bitrate= 797.5kbits/s frame= 853 fps=106 q=24.0 size= 3472kB time=00:00:35.45 bitrate= 802.2kbits/s frame= 897 fps=105 q=24.0 size= 3713kB time=00:00:37.26 bitrate= 816.1kbits/s frame= 943 fps=104 q=24.0 size= 3960kB time=00:00:39.17 bitrate= 828.0kbits/s frame= 987 fps=103 q=24.0 size= 4205kB time=00:00:41.00 bitrate= 840.1kbits/s frame= 1033 fps=102 q=24.0 size= 4442kB time=00:00:42.91 bitrate= 848.1kbits/s frame= 1074 fps=101 q=24.0 size= 4627kB time=00:00:44.60 bitrate= 849.7kbits/s frame= 1123 fps=101 q=24.0 size= 4861kB time=00:00:46.67 bitrate= 853.3kbits/s frame= 1168 fps=101 q=24.0 size= 5079kB time=00:00:48.52 bitrate= 857.3kbits/s frame= 1216 fps=100 q=24.0 size= 5312kB time=00:00:50.52 bitrate= 861.3kbits/s frame= 1254 fps= 99 q=24.0 size= 5519kB time=00:00:52.10 bitrate= 867.7kbits/s frame= 1302 fps= 99 q=24.0 size= 5751kB time=00:00:54.12 bitrate= 870.5kbits/s frame= 1358 fps= 99 q=24.0 size= 6002kB time=00:00:56.47 bitrate= 870.8kbits/s dup=0 drop=1 frame= 1427 fps=101 q=24.0 size= 6243kB time=00:00:59.35 bitrate= 861.8kbits/s dup=0 drop=1 frame= 1444 fps=100 q=-1.0 Lsize= 6451kB time=00:01:00.16 bitrate= 878.3kbits/s dup=0 drop=1 [290] => video:5008kB audio:1407kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.550038% [291] => [libx264 @ 0000000001c31860] frame I:10 Avg QP:13.67 size: 25967 [292] => [libx264 @ 0000000001c31860] frame P:1434 Avg QP:18.73 size: 3395 [293] => [libx264 @ 0000000001c31860] mb I I16..4: 36.0% 0.0% 64.0% [294] => [libx264 @ 0000000001c31860] mb P I16..4: 3.6% 0.0% 4.0% P16..4: 21.9% 5.5% 4.2% 0.0% 0.0% skip:60.8% [295] => [libx264 @ 0000000001c31860] coded y,uvDC,uvAC intra: 51.3% 62.1% 11.5% inter: 11.4% 14.4% 2.1% [296] => [libx264 @ 0000000001c31860] i16 v,h,dc,p: 52% 30% 16% 2% [297] => [libx264 @ 0000000001c31860] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 25% 17% 3% 4% 4% 3% 4% 5% [298] => [libx264 @ 0000000001c31860] i8c dc,h,v,p: 39% 32% 25% 4% [299] => [libx264 @ 0000000001c31860] ref P L0: 82.2% 8.5% 4.8% 2.2% 2.3% [300] => [libx264 @ 0000000001c31860] kb/s:681.85 [301] => [aac @ 0000000001c322a0] Qavg: 14325.964 )
答案1
您可能应该表达 h264 配置文件,而且更重要的是等级。YMMV,但 High-L4.1 似乎得到了普遍支持。
ffmpeg.exe -y -i output.flv \
-c:v libx264 -crf 19 -preset slow -profile:v high -level 4.1 \
-c:a aac -strict experimental -b:a 192k -ac 2 w3.mp4
它们之所以重要,是因为 libx264 预设会影响配置文件和级别。在我自己的实验中,使用慢速预设(和默认 crf)编码的 1080p30 内容被编码为 High-L4.1,但较慢的预设会将其提升到 High-L5.0。需要更高级别的支持来支持更多的 B 帧,而 B 帧是 h264 相对于以前的编解码器的很多优势的来源。
为了反驳上面的评论,Android 确实支持 AAC 的读取和写入。事实上,ffmpeg 的 libvo_aacenc 基于 VisualOn 库,自由舞台惊吓。