-->

2010-12-19

ffmpeg と flvtool2 でエラーになる例

FFmpeg version SVN-r25767 で作成した動画が flvtool2 でエラーになりました。
0.6_p25767 => 0.6 に戻しても使えるようになります。

$ cat /etc/redhat-release
CentOS release 5.5 (Final)

$ flvtool2 -UP tmp.flv
ERROR: EOFError
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/amf_string_buffer.rb:37:in `read'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/video_tag.rb:80:in `read_header'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/video_tag.rb:47:in `after_initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/tag.rb:56:in `initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:449:in `new'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:449:in `read_tags'
ERROR: /usr/lib/ruby/site_ruby/1.8/flv/stream.rb:58:in `initialize'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:272:in `new'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:272:in `open_stream'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:238:in `process_files'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:225:in `each'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:225:in `process_files'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2/base.rb:44:in `execute!'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2.rb:168:in `execute!'
ERROR: /usr/lib/ruby/site_ruby/1.8/flvtool2.rb:228
ERROR: /usr/bin/flvtool2:2:in `require'
ERROR: /usr/bin/flvtool2:2

$ ffmpeg -y -i tmp.flv -vcodec copy -acodec copy tmp2.flv
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec  4 2010 15:35:31 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
~中略~
frame= 6243 fps=  0 q=-1.0 Lsize=    9331kB time=204.04 bitrate= 374.6kbits/s
video:7493kB audio:1594kB global headers:0kB muxing overhead 2.688855%

$ flvtool2 -UP tmp2.flv
---
/tmp/tmp2.flv:
  hasKeyframes: true
  cuePoints:
  audiodatarate: 62.9997023152194
  hasVideo: true
  stereo: true
  canSeekToEnd: false
  framerate: 30
  audiosamplerate: 44000
  videocodecid: 7
  datasize: 9500370
  lasttimestamp: 208.274
  audiosamplesize: 16
  audiosize: 1726071
  hasAudio: true
  audiodelay: 0
  videosize: 7772385
  metadatadate: Sun Dec 19 22:37:09 GMT+0900 2010
  metadatacreator: inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2
  lastkeyframetimestamp: 206.572
  height: 200
  filesize: 9556611
  hasMetadata: true
  keyframes:
    times:
      - 0
      - 0
      - 8.341
      - 9.375
      - 13.179
~中略~
      - 8720576
      - 8944857
      - 9162079
      - 9372005
      - 9548418
  audiocodecid: 2
  videodatarate: 295.906392540596
  duration: 208.307
  hasCuePoints: false
  width: 352
...

$ ffmpeg 2>&1 | head -n2
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 19 2010 23:03:42 with gcc 4.4.4

$ ffmpeg -i src/a.flv -vcodec libx264 -vpre medium dst2/a.flv

$ flvtool2 -UP a.flv
---
/tmp/dst2/a.flv:
  hasKeyframes: true
  cuePoints:
  audiodatarate: 65.916396729909
  hasVideo: true
  stereo: true
  canSeekToEnd: false
  framerate: 30
  audiosamplerate: 11000
  videocodecid: 7
  datasize: 481161
  lasttimestamp: 12.966
  audiosamplesize: 16
  audiosize: 109639
  hasAudio: true
  audiodelay: 0
  videosize: 370742
  metadatadate: Sun Dec 19 23:07:46 GMT+0900 2010
  metadatacreator: inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2
  lastkeyframetimestamp: 12.666
  height: 240
  filesize: 483766
  hasMetadata: true
  keyframes:
    times:
      - 0
      - 0
      - 8.333
      - 12.666
    filepositions:
      - 763
      - 824
      - 273615
      - 471023
  audiocodecid: 2
  videodatarate: 226.093475242943
  duration: 12.999
  hasCuePoints: false
  width: 320
...


# 使えない。
$ ffmpeg 2>&1 | head -n2
FFmpeg version SVN-r25767, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 19 2010 23:17:31 with gcc 4.4.4

# 使える。
$ ffmpeg 2>&1 | head -n2
FFmpeg version 0.6, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 19 2010 23:03:42 with gcc 4.4.4

# 使える。
$ ffmpeg 2>&1 | head -n2
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec  4 2010 15:35:31 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)