5

ffmpeg を使用して動画を mp4 形式に変換しています。MOV形式を除いて、すべて正常に動作します。

私がすべてに使用するコマンドは次のとおりです。

ffmpeg -i input.mov -strict experimental -sameq -s vga -aspect 1.7777 -vcodec libx264 -preset fast -crf 22 -y output.mp4

しかし、私が得続ける出力は次のとおりです。

ffmpeg version 0.9, Copyright (c) 2000-2011 the FFmpeg developers
built on Mar 12 2012 11:01:05 with gcc 4.4.5
configuration: --enable-libx264 --enable-gpl --disable-yasm
  libavutil    51. 32. 0 / 51. 32. 0
  libavcodec   53. 42. 0 / 53. 42. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 53. 0 /  2. 53. 0
  libswscale    2.  1. 0 /  2.  1. 0
  libpostproc  51.  2. 0 / 51.  2. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x21767a0] Referenced QT chapter track not found

Seems stream 0 codec frame rate differs from container frame rate: 30.00 (30/1) -> 30.07 (2225/74)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    creation_time   : 2009-04-04 07:12:29
    comment         : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
    comment-eng     : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
  Duration: 00:00:17.76, start: 0.000000, bitrate: 8100 kb/s
    Stream #0:0(eng): Video: mpeg4 (Advanced Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 7968 kb/s, 30.07 fps, 30.07 tbr, 8544k tbn, 30 tbc
    Metadata:
      creation_time   : 2009-04-04 07:12:29
      handler_name    : 
    Stream #0:1(eng): Audio: pcm_mulaw (ulaw / 0x77616C75), 16000 Hz, 1 channels, s16, 128 kb/s
    Metadata:
      creation_time   : 2009-04-04 07:12:29
      handler_name    : 
[buffer @ 0x2187f00] w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
[scale @ 0x219c120] w:1280 h:720 fmt:yuv420p -> w:640 h:480 fmt:yuv420p flags:0x4
[libx264 @ 0x2190d20] using SAR=4/3
[libx264 @ 0x2190d20] using cpu capabilities: none!
[libx264 @ 0x2190d20] profile High, level 3.0
[libx264 @ 0x2190d20] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 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 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=22.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[aac @ 0x21917e0] Too many bits per frame requested
Output #0, mp4, to 'output.mp4':
  Metadata:
    creation_time   : 2009-04-04 07:12:29
    comment         : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
    comment-eng     : EASTMAN KODAK COMPANY  KODAK Z1275 ZOOM DIGITAL CAMERA
    Stream #0:0(eng): Video: h264, yuv420p, 640x480 [SAR 4:3 DAR 16:9], q=-1--1, 90k tbn, 30.07 tbc
    Metadata:
      creation_time   : 2009-04-04 07:12:29
      handler_name    : 
    Stream #0:1(eng): Audio: aac, 16000 Hz, 1 channels, s16, 128 kb/s
    Metadata:
      creation_time   : 2009-04-04 07:12:29
      handler_name    : 
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 -> libx264)
  Stream #0:1 -> #0:1 (pcm_mulaw -> aac)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

問題はフレームあたりのオーディオのビットにあるようです。適切な解決策はどれですか?

4

2 に答える 2

10

" Too many bits per frame requested" エラーは、ネイティブ FFmpeg AAC エンコーダ ( ) から発生しています-c:a aac。次のソリューションの 1 つ以上を使用できます。

更新するffmpeg

開発は非常に活発で、ネイティブの FFmpeg AAC エンコーダーには多くの改善が見られます。このエラーで失敗する代わりに、フレームあたりの最大ビット数に自動的にクランプされるようになりました。最近の .xml を取得する最も簡単な方法であるコンパイル済みのバイナリへのリンクについては、 FFmpeg のダウンロードページを参照してくださいffmpeg

古い、時代遅れの、古代の で立ち往生している場合ffmpeg:

  • を追加するなどして、オーディオのサンプリング レートを上げ-ar 44100ます。

  • ビットレートを下げてください。デフォルトはおそらく-b:a 128kです。うまくいくまで値を下げてみてください。

  • -c:a copyオーディオをストリーミング コピー(再多重化) するために使用します。MP4 は をサポートしていないため、pcm_mulawMatroska ( ) などの別の出力コンテナー形式を使用します.mkv

  • サポートしているlibfdk_aac場合など、別の AAC エンコーダーを使用します。ffmpeg

をアップグレードする場合は、これらのオプションを実行する必要はありませんffmpeg

于 2012-04-27T06:03:13.283 に答える
3

ffmpeg がこれより賢いことを願っていますが、-sおよび-aspectオプションのビデオ ストリームを指定してみ-s:vてください-aspect:v

または、オーディオで特別なことをしていないので、 で明示的にコピーすることもできます-c:a copy

于 2012-04-26T19:09:35.553 に答える