FFMPEG Windows生成360p视频转换失败


0

输入:

"C:/server/ffmpeg/bin/ffmpeg.exe" -y -i C:\server\websites\ps\public_www/media/com_hwdmediashare/files/50/4f/37/4185216cb9bb234fd47ee43bf2122e4f.avi -strict experimental -acodec aac -ac 2 -ab 192k -s 480x360 -aspect 16:9 -r 24000/1001 -vcodec libx264 -b:v 1000k -minrate 800k -maxrate 1000k -bufsize 800K -crf 18 -preset veryslow -f mp4 -threads 0 -movflags +faststart C:\server\websites\ps\public_www/media/com_hwdmediashare/files/50/4f/37/de8324ea7b8fe7a28ccc701f0ae757c8.mp4 2>&1

输出:

    ffmpeg version N-65916-g9e8ab36 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 26 2014 22:10:59 with gcc 4.8.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-libbs2b --enable-libcaca --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-decklink --enable-zlib
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  0.101 / 56.  0.101
  libavformat    56.  3.100 / 56.  3.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.103 /  5.  0.103
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
[avi @ 0000000002c5c2c0] non-interleaved AVI
[mp3 @ 0000000002b2b220] Header missing
Input #0, avi, from 'C:\server\websites\ps\public_www/media/com_hwdmediashare/files/50/4f/37/4185216cb9bb234fd47ee43bf2122e4f.avi':
  Duration: 00:06:46.47, start: 0.000000, bitrate: 1144 kb/s
    Stream #0:0: Video: mpeg4 (DX50 / 0x30355844), yuv420p, 512x384 [SAR 1:1 DAR 4:3], 1106 kb/s, 29.97 fps, 29.97 tbr, 29.97 tbn, 30k tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 11025 Hz, stereo, s16p, 31 kb/s
[libx264 @ 0000000002b87da0] using SAR=4/3
[libx264 @ 0000000002b87da0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0000000002b87da0] profile High, level 3.1
[libx264 @ 0000000002b87da0] 264 - core 142 r2453 ea0ca51 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 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=8 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1000 vbv_bufsize=800 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
[aac @ 0000000002b88de0] Too many bits per frame requested
Output #0, mp4, to 'C:\server\websites\ps\public_www/media/com_hwdmediashare/files/50/4f/37/de8324ea7b8fe7a28ccc701f0ae757c8.mp4':
    Stream #0:0: Video: h264 (libx264), yuv420p, 480x360 [SAR 4:3 DAR 16:9], q=-1--1, 1000 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc
    Metadata:
      encoder         : Lavc56.0.101 libx264
    Stream #0:1: Audio: aac, 0 channels, 128 kb/s
    Metadata:
      encoder         : Lavc56.0.101 aac
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (mp3 (native) -> aac (native))
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

我不知道转换可能出现了什么问题,也许有人可以帮助我?


您使用两种互斥的方法进行速率控制, -b:v,和 -crf。在这种情况下 -b:v 可能会被忽略 -crf 在它之后被列出。此外,你可能不应该添加 -minrate,但我不确定你输出的用例是什么。
llogan

Answers:


1

这是来自原生FFmpeg AAC编码器的错误( -acodec aac -strict experimental )当试图为给定的音频速率强制过高的比特率时。

我可以想到七种方法来解决这个问题:

  • 降低音频比特率,例如 -ab 64k (你可能要试验),或者
  • 使用 -aq 10 用于VBR音频而不是 -ab, 要么
  • 提高你的音频率,比如 -ar 44100, 要么
  • 使用不同的AAC音频编码器,例如 -acodec libvoaac_enc, 要么
  • 管道 ffmpeg 到一个外部独立的AAC编码器,然后重新启动 ffmpeg, 要么
  • 流复制 (重新复用)音频使用 -acodec copy, 要么
  • 通过使用输出到不同的音频格式,如MP3 -acodec libmp3lame

不幸的是,分布式构建 ffmpeg 通常只提供本机AAC编码器和libvoaac_enc,但FFmpeg支持更好的AAC编码器,例如libfdk_aac,但你必须 ffmpeg 为此获得支持。

FFmpeg AAC音频编码指南 更多细节。


感谢LordNeckbeard会导致其他视频转换出现问题,或者我也可以将其用于其他视频转换,并且不会出错。
C0nw0nk

我还得到以下内容:请注意,wmav1,wmav2和libvo_aacenc似乎无法以任何给定的比特率达到透明度。似乎ffmpeg不建议我使用该编码器。 trac.ffmpeg.org/wiki/Encode/HighQualityAudio 我还会提到你说的几个方法来解决这个问题,但你发布了3个其他4个是什么?
C0nw0nk

您可以为大多数其他视频使用相同的选项和值。您提供的链接中的信息可能非常主观(由用户编写,而不是开发人员编写),但一般认为libvo_aacenc不是一个优秀的AAC编码器,但您的构建没有太多选择。
llogan

有没有人想出合理的 -qscale 价值观 aac
slhck

感谢您的信息切换到-acodec libmp3lame的问题适用于所有IOS(Apple设备用户)当您使用mp3编解码器观看MP4视频时他们无法听到任何音频我添加了-ar 44100并将我的音频比特率降低到-ar 128k并会告诉您结果是否相同。
C0nw0nk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.