1

Drupal Video Module 内で FFmpeg を使用して、IOS および Flash Player10 以降と互換性のある MP4 にファイルを生成するのに苦労しています。これまでに次のコマンドを使用しましたが、「!」で始まる変数に注意してください。はプレースホルダーであり、適切なアイテムに置き換えられます:

FFmpeg -strict experimental -y -i !videofile -pass 1 -s !widthx!height -b:v 500k -threads 0 -vcodec libx264 -vf "pad=!paddingwidth:!paddingheight:!paddingleft:!paddingtop:000000" -preset slow -an !convertfile

FFmpeg -strict experimental -y -i !videofile -pass 2 -s !widthx!height -b:v 500k -threads 0 -vcodec libx264 -vf "pad=!paddingwidth:!paddingheight:!paddingleft:!paddingtop:000000" -preset slow -acodec aac -ab 128k !convertfile

上記のコマンドは、次のようなエラーを生成します。

プリセット HTML5 MP4 をレンダリングするためのコマンド実行エラー、コマンド #1:

nice -n 19 /usr/bin/ffmpeg/ffmpeg -y -i '80137db8c3_1334836277_int_tr_19.mp4' -s 176x100 -b:v 500k -threads 0 -vcodec libx264 -preset slow -acodec aac -ab 128k '/converted/80137db8c3_1334836277_int_tr_19.mp4' 2>&1

Output:

ffmpeg version git-2013-02-01-5a67e30 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  1 2013 14:23:14 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-gpl --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
  libavutil      52. 17.100 / 52. 17.100
  libavcodec     54. 91.100 / 54. 91.100
  libavformat    54. 61.104 / 54. 61.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 35.100 /  3. 35.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '80137db8c3_1334836277_int_tr_19.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2011-03-28 00:12:26
  Duration: 00:02:01.14, start: 0.000000, bitrate: 703 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 601 kb/s, 29.96 fps, 29.92 tbr, 1k tbn, 59.83 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s
    Metadata:
      creation_time   : 2011-03-28 00:12:27
      handler_name    : (C) 2007 Google Inc. v08.13.2007.
[libx264 @ 0x34ec060] using SAR=100/99
[libx264 @ 0x34ec060] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x34ec060] profile High, level 2.0
[libx264 @ 0x34ec060] 264 - core 129 r2245 bc13772 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
Alternatively use the non experimental encoder 'libfaac'.

私が使用した別のコマンドは次のとおりです。

FFmpeg -i !videofile -an -pass 1 -vcodec libx264 -preset slow -b 500k -threads auto !convertfile

FFMpeg -y -i !videofile -acodec libfaac -ab 128k -pass 2 -vcodec libx264 -preset slow -b 500k -threads auto !convertfile

最初のパスの出力:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'comiccon.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 2012-08-15 17:12:37
  Duration: 01:17:15.93, start: 0.000000, bitrate: 706 kb/s
    Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 636 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : SoundHandler
Please use -b:a or -b:v, -b is ambiguous

using SAR=1/1
[libx264 @ 0x1c39be0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x1c39be0] profile Main, level 3.0
[libx264 @ 0x1c39be0] 264 - core 129 r2245 bc13772 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x1:0 me=dia subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'comiccon.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    encoder         : Lavf54.61.104
    Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, pass 1, 500 kb/s, 15360 tbn, 30 tbc
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : VideoHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
Press [q] to stop, [?] for help
frame=139078 fps=279 q=32766.0 Lsize=  286145kB time=01:17:15.86 bitrate= 505.6kbits/s    
video:284758kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.487000%
[libx264 @ 0x1c39be0] frame I:656   Avg QP:19.51  size: 21457
[libx264 @ 0x1c39be0] frame P:76006 Avg QP:22.19  size:  3141
[libx264 @ 0x1c39be0] frame B:62416 Avg QP:26.38  size:   621
[libx264 @ 0x1c39be0] consecutive B-frames: 32.3% 17.5% 18.6% 31.6%
[libx264 @ 0x1c39be0] mb I  I16..4: 24.5%  0.0% 75.5%
[libx264 @ 0x1c39be0] mb P  I16..4:  7.5%  0.0%  0.0%  P16..4: 40.5%  0.0%  0.0%  0.0%  0.0%    skip:52.1%
[libx264 @ 0x1c39be0] mb B  I16..4:  1.4%  0.0%  0.0%  B16..8: 12.0%  0.0%  0.0%  direct: 2.9%  skip:83.7%  L0:41.1% L1:41.6% BI:17.3%
[libx264 @ 0x1c39be0] final ratefactor: 23.45
[libx264 @ 0x1c39be0] direct mvs  spatial:95.3% temporal:4.7%
[libx264 @ 0x1c39be0] coded y,uvDC,uvAC intra: 37.6% 42.8% 11.8% inter: 8.9% 8.2% 0.5%
[libx264 @ 0x1c39be0] i16 v,h,dc,p: 43% 28% 19% 10%
[libx264 @ 0x1c39be0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 21% 11%  6%  4%  5%  4%  6%  6%
[libx264 @ 0x1c39be0] i8c dc,h,v,p: 57% 19% 20%  4%
[libx264 @ 0x1c39be0] Weighted P-Frames: Y:1.4% UV:0.5%
[libx264 @ 0x1c39be0] kb/s:503.18

2 番目のパスの出力:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'comiccon.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 2012-08-15 17:12:37
  Duration: 01:17:15.93, start: 0.000000, bitrate: 706 kb/s
    Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 636 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : SoundHandler
Please use -b:a or -b:v, -b is ambiguous
[libx264 @ 0x3247f80] using SAR=1/1
[libx264 @ 0x3247f80] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x3247f80] profile High, level 3.0
[libx264 @ 0x3247f80] 264 - core 129 r2245 bc13772 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=2pass mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 cplxblur=20.0 qblur=0.5 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'comiccon.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    encoder         : Lavf54.61.104
    Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, pass 2, 500 kb/s, 15360 tbn, 30 tbc
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
      creation_time   : 2012-08-15 17:12:37
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libfaac)
Press [q] to stop, [?] for help
frame=139078 fps=206 q=32766.0 Lsize=  357252kB time=01:17:15.93 bitrate= 631.3kbits/s    
video:282992kB audio:69592kB subtitle:0 global headers:0kB muxing overhead 1.324238%
[libx264 @ 0x3247f80] frame I:656   Avg QP:19.61  size: 20433
[libx264 @ 0x3247f80] frame P:76006 Avg QP:23.07  size:  2996
[libx264 @ 0x3247f80] frame B:62416 Avg QP:26.23  size:   780
[libx264 @ 0x3247f80] consecutive B-frames: 32.3% 17.5% 18.6% 31.6%
[libx264 @ 0x3247f80] mb I  I16..4: 17.2% 37.8% 44.9%
[libx264 @ 0x3247f80] mb P  I16..4:  2.9%  3.7%  1.2%  P16..4: 30.3%  6.1%  3.4%  0.0%  0.0%    skip:52.5%
[libx264 @ 0x3247f80] mb B  I16..4:  0.5%  0.6%  0.3%  B16..8: 25.9%  2.2%  0.5%  direct: 0.9%  skip:69.3%  L0:51.4% L1:43.0% BI: 5.7%
[libx264 @ 0x3247f80] 8x8 transform intra:45.9% inter:51.5%
[libx264 @ 0x3247f80] direct mvs  spatial:85.5% temporal:14.5%
[libx264 @ 0x3247f80] coded y,uvDC,uvAC intra: 47.3% 49.2% 13.5% inter: 9.0% 9.4% 0.5%
[libx264 @ 0x3247f80] i16 v,h,dc,p: 38% 27% 13% 22%
[libx264 @ 0x3247f80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 16% 14%  5%  5%  7%  7%  8%  9%
[libx264 @ 0x3247f80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 15%  9%  6%  7%  8%  7%  8%  8%
[libx264 @ 0x3247f80] i8c dc,h,v,p: 49% 22% 20%  8%
[libx264 @ 0x3247f80] Weighted P-Frames: Y:1.4% UV:0.5%
[libx264 @ 0x3247f80] ref P L0: 79.3% 10.4%  6.8%  1.6%  1.2%  0.7%  0.0%
[libx264 @ 0x3247f80] ref B L0: 93.6%  4.8%  1.2%  0.3%
[libx264 @ 0x3247f80] ref B L1: 96.6%  3.4%
[libx264 @ 0x3247f80] kb/s:500.06

上記のコマンドはファイルを正しく生成しますが、Flash Player では再生できません。私が気づいたことの 1 つは、入力ファイルも mp4 の場合に発生する可能性があることです。このコマンドは、ファイルをアップロードするユーザーに対して実行されるため、入力ファイルは任意の形式である可能性があります。

以下は、私の FFmpeg のバージョンに関する情報です: 4.6.3-1ubuntu5) 構成: --enable-gpl > --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 libavutil 52. 17.100 / 52. 17.100
libavcodec 54. 91.100 / 54. 91.100
libavformat 54. 61.104 / 54. 61.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 35.100 / 3. 35.100
libswscale 2. 2.100 / 2. 2.100
libswresample 0.17.102 / 0.17.102 libpostproc 52.2.100 /
52.2.1

4

1 に答える 1

2

いくつかのメモ:

  • バイナリはffmpeg;です。FFmpegやFFMpegではありません。

  • -strict experimental出力オプションとして使用する必要があります。入力オプションとして使用しており、無視されています。他のAACエンコーダーには必要ありません。

  • -threads auto現在はデフォルトであり、追加する必要はありません。

  • でコンパイルしたので、他のAACエンコーダーよりもファイルサイズあたりの品質が高いものを--enable-libfdk-aac使用できます。FFmpegAACエンコーディングガイドおよびFFmpegおよびx264エンコーディングガイド-codec:a libfdk_aacを参照してください。

  • メッセージPlease use -b:a or -b:v, -b is ambiguousを無視してはいけないので、ffmpegは希望のビットレートをオーディオまたはビデオに適用するかどうかを認識します。

  • 2番目のコマンドがFlashPlayerで機能しない理由がわかりません。再生する前に、ファイルが完全にダウンロードされるのを十分に待っていない可能性があります。-movflags +faststartダウンロードが完了する前に再生を開始できるように追加できます。

  • フィルタと交換-sして、で適切なフィルタチェーンを作成scaleできるようにします。次回は、変数を含むコマンドではなく、実際のコマンドを表示します。そうでなければ、適切なフィルタリングの例を示すことができたでしょう。pad

于 2013-02-05T03:47:36.370 に答える