1

这个问题也在音频视频制作中被问到

我有一些文件在 jwplayer 中播放时播放已损坏。这些文件使用 FFMpeg 编码为 h.264,并且还有其他文件以相同的方式编码。

目前我们只使用 Flash 版本的播放器。

这个问题是在我们升级到 FFMpeg 后开始出现的,所以我不排除它可能是编码错误。

用于运行 FFMpeg 的命令是:

ffmpeg 
    -i /home/ftp/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.mov 
    -vcodec libx264 
    -preset ultrafast 
    -profile baseline 
    -acodec libfaac 
    -ab 96k 
    -crf 19 
    -vf movie="/home/adam/logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" 
    -y /home/ftp/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.flv

我绝不是 FFMpeg 命令行方面的专家,因此请随时指出所犯的任何错误。

FFMpeg 信息:

ffmpeg version git-2012-05-02-2330eb1 Copyright (c) 2000-2012 the FFmpeg developers
  built on May  3 2012 08:51:25 with gcc 4.4.3
  configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-x11grab
  libavutil      51. 49.100 / 51. 49.100
  libavcodec     54. 17.101 / 54. 17.101
  libavformat    54.  3.100 / 54.  3.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 72.103 /  2. 72.103
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 11.100 /  0. 11.100
  libpostproc    52.  0.100 / 52.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x24300e0] max_analyze_duration 5000000 reached at 5187000
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/ftp/javarecorder/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2012-05-16 08:19:41
  Duration: 00:13:33.00, start: 0.000000, bitrate: 2164 kb/s
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), rgb24, 1366x768, 1457 kb/s, 8.43 fps, 1k tbr, 1k tbn, 1k tbc
    Metadata:
      creation_time   : 2012-05-16 08:19:41
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: pcm_s16be (twos / 0x736F7774), 44100 Hz, 1 channels, s16, 705 kb/s
    Metadata:
      creation_time   : 2012-05-16 08:19:41
      handler_name    : Apple Alias Data Handler
Please use -profile:a or -profile:v, -profile is ambiguous
[buffer @ 0x2446ac0] w:1366 h:768 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param:flags=2
[movie @ 0x242f840] seek_point:0 format_name:(null) file_name:/home/adam/logo.png stream_index:0
[overlay @ 0x2442840] auto-inserting filter 'auto-inserted scale 0' between the filter 'src' and the filter 'Parsed_overlay_1'
[overlay @ 0x2442840] auto-inserting filter 'auto-inserted scale 1' between the filter 'Parsed_movie_0' and the filter 'Parsed_overlay_1'
[scale @ 0x24444a0] w:1366 h:768 fmt:rgb24 sar:0/1 -> w:1366 h:768 fmt:yuv420p sar:0/1 flags:0x4
[scale @ 0x2445100] w:80 h:80 fmt:rgba sar:1/1 -> w:80 h:80 fmt:yuva420p sar:1/1 flags:0x4
[overlay @ 0x2442840] main w:1366 h:768 fmt:yuv420p overlay x:1276 y:678 w:80 h:80 fmt:yuva420p
[overlay @ 0x2442840] main_tb:1/1000000 overlay_tb:1/25 -> tb:1/1000000 exact:1
[libx264 @ 0x242d8c0] MB rate (4128000) > level limit (2073600)
[libx264 @ 0x242d8c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
[libx264 @ 0x242d8c0] profile Constrained Baseline, level 5.2
[libx264 @ 0x242d8c0] 264 - core 124 r2197 69a0443 - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 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=36 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=0 intra_refresh=0 rc=crf mbtree=0 crf=19.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[libfaac @ 0x2443540] channel_layout not specified
Guessed Channel Layout for  Input Stream #0.1 : mono
Output #0, flv, to '/home/ftp/javarecorder/1c8f08b7d0d9e7fa4b24066156ad50bc981497a0.flv':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2012-05-16 08:19:41
    encoder         : Lavf54.3.100
    Stream #0:0(eng): Video: h264 ([7][0][0][0] / 0x0007), yuv420p, 1366x768, q=-1--1, 1k tbn, 1k tbc
    Metadata:
      creation_time   : 2012-05-16 08:19:41
      handler_name    : Apple Alias Data Handler
    Stream #0:1(eng): Audio: aac ([10][0][0][0] / 0x000A), 44100 Hz, mono, s16, 96 kb/s
    Metadata:
      creation_time   : 2012-05-16 08:19:41
      handler_name    : Apple Alias Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (qtrle -> libx264)
  Stream #0:1 -> #0:1 (pcm_s16be -> libfaac)
Press [q] to stop, [?] for help
Input stream #0:1 frame changed from rate:44100 fmt:s16 ch:1 chl:0x0 to rate:44100 fmt:s16 ch:1 chl:0x4
frame= 6856 fps=105 q=-1.0 Lsize=   36030kB time=00:13:32.83 bitrate= 363.1kbits/s
video:27775kB audio:7540kB global headers:0kB muxing overhead 2.026555%
[libx264 @ 0x242d8c0] frame I:28    Avg QP: 4.61  size:238170
[libx264 @ 0x242d8c0] frame P:6828  Avg QP: 7.31  size:  3189
[libx264 @ 0x242d8c0] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x242d8c0] mb P  I16..4:  0.9%  0.0%  0.0%  P16..4:  2.2%  0.0%  0.0%  0.0%  0.0%    skip:96.9%
[libx264 @ 0x242d8c0] coded y,uvDC,uvAC intra: 32.3% 30.0% 29.0% inter: 1.0% 1.1% 1.0%
[libx264 @ 0x242d8c0] i16 v,h,dc,p: 66% 32%  1%  1%
[libx264 @ 0x242d8c0] i8c dc,h,v,p: 62% 23% 14%  1%
[libx264 @ 0x242d8c0] kb/s:279.82

编辑:

一位同事能够查看“损坏”的文件。我的电脑和他的唯一区别是他有一台 Mac。相同的 flash 版本,相同的 JW Player 版本。这有些不对劲。

4

2 回答 2

2

首先,不要将 h.264 视频放入 FLV 容器中。这不是一个很好的选择。可能会发生各种各样的怪事。使用 mp4 容器,其中 h264 自然就在家里。

其他建议/问题:

  • 删除或更改crf值,看看是否有区别
  • 放弃覆盖,它有什么不同吗?
  • 当您更新 FFmpeg 时,您是否也更新了 x264?
  • 放弃超快预设,看看它是否有所作为
  • 以 v: 作为基线的前缀,正如 FFmpeg 在 2011 年末的某个时候所要求的那样(我认为)。

从您的输出:

Please use -profile:a or -profile:v, -profile is ambiguous
于 2012-05-20T08:29:08.860 回答
1

似乎罪魁祸首是帧率。通过一些神奇的事情,生成的视频的帧速率约为 1000。使用-r 30似乎已经解决了这个问题。

于 2012-05-21T15:24:43.503 回答