3

HTML5 またはフラッシュ フォールバック (mediaelement.js を使用) を使用して、ほとんどすべてのブラウザーで再生される MP4 ファイルがあります。一貫して再生される1つのファイルと「一致」させたい一連の追加のビデオファイルもありますが、ffmpeg設定を一致させることができなかったため、同様のファイルが生成されます。ffprobe を使用したところ、正常に再生されるファイルで次の結果が得られました。

ffprobe version N-53616-g7a2edcf Copyright (c) 2007-2013 the FFmpeg developers
built on May 29 2013 01:21:08 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. 34.100 / 52. 34.100
 libavcodec     55. 12.102 / 55. 12.102
 libavformat    55.  7.100 / 55.  7.100
 libavdevice    55.  1.101 / 55.  1.101
 libavfilter     3. 72.100 /  3. 72.100
 libswscale      2.  3.100 /  2.  3.100
 libswresample   0. 17.102 /  0. 17.102
 libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'MyFile.mp4':
 Metadata:
  major_brand     : M4V
  minor_version   : 1
  compatible_brands: M4V mp42isom
  creation_time   : 2013-05-29 16:08:29
Duration: 00:01:58.10, start: 0.000000, bitrate: 1155 kb/s
 Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 995 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
Metadata:
  creation_time   : 2013-05-29 16:08:29
  handler_name    : Mainconcept MP4 Video Media Handler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 157 kb/s
Metadata:
  creation_time   : 2013-05-29 16:08:29
  handler_name    : Mainconcept MP4 Sound Media Handler

オンラインで見つけたいくつかのガイドに従って、次のffmpeg設定を使用しています。

ffmpeg -i {input file name} -y -acodec aac -ac 2 -strict experimental -ab 64k -s 320x240 -vcodec libx264 -pix_fmt yuv420p -preset slow -profile:v baseline -level 30 -maxrate 300k -bufsize 600k -b:v 300k -f mp4 -threads 0 -movflags +faststart {output file name}

このコマンドは、次の出力を生成します。

ffmpeg -i "testin.mp4" -y -acodec aac -ac 2 -strict experimental -ab 64k -s 320x240 -vcodec libx264 -pix_fmt yuv420p -preset slow-profile:v baseline -level 30 -maxrate 300k -bufsize 600k -b:v 300k -f mp4 -threads 0 -movflags +faststart testout.mp4

ffmpeg version N-53616-g7a2edcf Copyright (c) 2000-2013 the FFmpeg developers  built on May 29 2013 01:21:08 with gcc 4.7.3 (GCC)  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --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-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 34.100 / 52. 34.100
  libavcodec     55. 12.102 / 55. 12.102
  libavformat    55.  7.100 / 55.  7.100
  libavdevice    55.  1.101 / 55.  1.101
  libavfilter     3. 72.100 /  3. 72.100
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testin.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2013-10-01 17:11:42
  Duration: 00:04:33.75, start: 0.000000, bitrate: 725 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 596 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
    Metadata:
      creation_time   : 2013-10-01 17:11:42
      handler_name    : ?Mainconcept Video Media Handler
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s
    Metadata:
      creation_time   : 2013-10-01 17:11:42
      handler_name    : #Mainconcept MP4 Sound Media Handler
[libx264 @ 0000000000358160] using SAR=1/1
[libx264 @ 0000000000358160] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2AVX
[libx264 @ 0000000000358160] profile Constrained Baseline, level 3.0
[libx264 @ 0000000000358160] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - 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=6 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=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=cbr mbtree=1 bitrate=300 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=300 vbv_bufsize=600 nal_hrd=none ip_ratio=1.40 aq=1:1.00

Output #0, mp4, to 'testout.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    encoder         : Lavf55.7.100
   Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 300 kb/s, 30k tbn, 29.97 tbc
    Metadata:
      creation_time   : 2013-10-01 17:11:42
      handler_name    : ?Mainconcept Video Media Handler
    Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 64 kb/s
    Metadata:
      creation_time   : 2013-10-01 17:11:42
      handler_name    : #Mainconcept MP4 Sound Media Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> aac)
Press [q] to stop, [?] for help
frame=  283 fps=0.0 q=21.0 size=     329kB time=00:00:09.30 bitrate= 289.9kbits/
frame=  565 fps=564 q=20.0 size=     760kB time=00:00:18.64 bitrate= 333.7kbits/
frame=  846 fps=564 q=21.0 size=    1179kB time=00:00:28.20 bitrate= 342.5kbits/
frame= 1123 fps=561 q=22.0 size=    1603kB time=00:00:37.33 bitrate= 351.7kbits/
frame= 1376 fps=550 q=25.0 size=    1986kB time=00:00:45.69 bitrate= 356.1kbits/
frame= 1651 fps=550 q=22.0 size=    2377kB time=00:00:55.01 bitrate= 353.9kbits/
frame= 1914 fps=546 q=24.0 size=    2776kB time=00:01:03.70 bitrate= 357.0kbits/
frame= 2181 fps=545 q=24.0 size=    3163kB time=00:01:12.70 bitrate= 356.4kbits/
frame= 2443 fps=543 q=24.0 size=    3566kB time=00:01:21.38 bitrate= 358.9kbits/
frame= 2702 fps=540 q=24.0 size=    3939kB time=00:01:30.04 bitrate= 358.4kbits/
frame= 2965 fps=539 q=24.0 size=    4338kB time=00:01:38.73 bitrate= 359.9kbits/
frame= 3236 fps=539 q=23.0 size=    4731kB time=00:01:48.03 bitrate= 358.7kbits/
frame= 3505 fps=539 q=24.0 size=    5130kB time=00:01:56.75 bitrate= 360.0kbits/
frame= 3765 fps=537 q=26.0 size=    5521kB time=00:02:05.41 bitrate= 360.6kbits/
frame= 4036 fps=538 q=24.0 size=    5905kB time=00:02:14.59 bitrate= 359.4kbits/
frame= 4326 fps=540 q=24.0 size=    6343kB time=00:02:24.10 bitrate= 360.6kbits/
frame= 4606 fps=542 q=27.0 size=    6783kB time=00:02:33.49 bitrate= 362.0kbits/
frame= 4886 fps=543 q=24.0 size=    7168kB time=00:02:42.81 bitrate= 360.7kbits/
frame= 5166 fps=544 q=27.0 size=    7616kB time=00:02:52.13 bitrate= 362.5kbits/
frame= 5456 fps=545 q=24.0 size=    8020kB time=00:03:01.84 bitrate= 361.3kbits/
frame= 5736 fps=546 q=27.0 size=    8458kB time=00:03:11.18 bitrate= 362.4kbits/
frame= 6001 fps=545 q=30.0 size=    8849kB time=00:03:20.17 bitrate= 362.1kbits/
frame= 6264 fps=544 q=27.0 size=    9233kB time=00:03:28.85 bitrate= 362.2kbits/
frame= 6526 fps=544 q=26.0 size=    9611kB time=00:03:37.55 bitrate= 361.9kbits/
frame= 6793 fps=543 q=26.0 size=   10006kB time=00:03:46.51 bitrate= 361.9kbits/
frame= 7076 fps=544 q=24.0 size=   10410kB time=00:03:55.86 bitrate= 361.6kbits/
frame= 7355 fps=544 q=25.0 size=   10835kB time=00:04:05.20 bitrate= 362.0kbits/
frame= 7615 fps=543 q=27.0 size=   11236kB time=00:04:13.88 bitrate= 362.5kbits/
frame= 7883 fps=543 q=25.0 size=   11625kB time=00:04:22.89 bitrate= 362.3kbits/
frame= 8166 fps=544 q=21.0 size=   12040kB time=00:04:32.31 bitrate= 362.2kbits/
Starting second pass: moving header on top of the file
frame= 8203 fps=540 q=-1.0 Lsize=   12417kB time=00:04:33.74 bitrate= 371.6kbits/s
video:10035kB audio:2150kB subtitle:0 global headers:0kB muxing overhead 1.901929%
[libx264 @ 0000000000358160] frame I:41    Avg QP:14.13  size: 18349
[libx264 @ 0000000000358160] frame P:8162  Avg QP:17.24  size:  1167
[libx264 @ 0000000000358160] mb I  I16..4: 24.8%  0.0% 75.2%
[libx264 @ 0000000000358160] mb P  I16..4:  0.4%  0.0%  0.3%  P16..4: 29.1%  6.4%  3.2%  0.0%  0.0%    skip:60.7%
[libx264 @ 0000000000358160] coded y,uvDC,uvAC intra: 66.1% 74.1% 53.1% inter: 15.3% 20.2% 4.0%
[libx264 @ 0000000000358160] i16 v,h,dc,p: 23% 21% 11% 45%
[libx264 @ 0000000000358160] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 25% 14%  6%  7% 7%  7%  6%  7%
[libx264 @ 0000000000358160] i8c dc,h,v,p: 43% 28% 19% 10%
[libx264 @ 0000000000358160] ref P L0: 78.4% 12.6%  4.9%  2.4%  1.7%
[libx264 @ 0000000000358160] kb/s:300.33

上記の呪文の問題点の 1 つは、iPad や iPhone、一部の Android タブレットでは、映像がなく音声だけが聞こえることです。しかし、上記のファイル (ffprobe の内容) にはその問題はなく、iPad、iPhone、Android タブレットで再生できます。「音声あり、動画なし」の原因を調査したところ、推奨事項がデッキ全体にありました。ただし、ffprobe にリストされているファイルは再生されるため、ffprobe で説明されている設定を他のすべてのビデオと一致させることができれば、それらも一貫して再生されるはずです。私の課題は、ffmpeg を使用して ffprobe の設定を一致させることであり、ffprobe で表示されるものと ffmpeg の対応する設定との間に 1 対 1 の一致があるようには見えません (素晴らしいユーティリティは、ffprobe に ffmpeg の設定を出力させることです。同様の形式のファイルを作成するために使用されます)。

ffprobe のドキュメントを調べましたが、ffmpeg への入力として使用できる形式を生成するものは見つかりませんでした。提案?

4

1 に答える 1

5

これは、ffprobe (または MediaInfo) 出力を ffmpeg パラメータにマップするのに役立つリソースを見つけるのではなく、試行錯誤によって解決されました。mp4 ビデオをサポートするブラウザーとデバイスで動作するように見える最後の呪文は次のとおりです。

ffmpeg -i {入力ファイル名} -codec:v libx264 -profile:v main -preset slow -b:v 300k -maxrate 300k -bufsize 600k -vf scale=320:-1 -threads 0 -acodec aac -ac 2 -厳密な実験的 -ab 64k -y {出力ファイル名}

そのソフトウェアを押したり引いたりするためのノブやレバーがたくさんあるので、ある時点でffmpegのドキュメントをより徹底的に調べる必要がありますが、今のところ、これで差し迫った問題に対処できます(ツールを見つけたいですただし、ffprobe 出力を使用して、同様のタイプのファイルを生成する ffmpeg コマンドを作成します)。

于 2013-11-08T17:08:02.417 に答える