mindpin/image-service

音视频转码功能

Opened this issue · 1 comments

1 image.rb 创建回调进行转码(七牛转码是异步模型,需要一个队列发送转码请求,一个队列监控转码结果)

2 增加转码模型(用来记录转码状态和查询转码后文件的模型)

  image.has_many :transcoding_records


  transcoding_records
    belongs_to :image
    info # {:bit_rate => 128000}
    qiniu_key # "/i/xxxx/xxxx.mp3"
    status # processing success failure
    quniu_persistance_id # 七牛的转码处理任务编号,可以用查询转码结果

音视频的源文件和图片源文件都是 image 保存(随后会改为 file_entity)
transcoding_records 会记录音视频转码后的文件

音频转码规则是

  如果源文件码率大于等于 128kbs, 就转码 128k 64k 32k 三个mp3
  如果源文件码率大于等于 64kbs, 就转码 64k 32k 二个mp3
  如果源文件码率大于等于 32kbs, 就转码 32k 一个mp3

视频转码规则先根据youku的规则进行了精简,需要有一些数据后才能方便写出复杂的规则
目前的规则是

如果源文件码率小于等于 1mkbs, 就转码 
1 原视频码率 + 64k音频码率 h264编码,mp4文件

如果源文件码率大于等于 1mkbs, 就转码 
1 原视频码率    +  64k音频码率 h264编码,mp4文件
2 1mkbs视频码率 +  128k音频码率 h264编码,mp4文件

如果源文件码率大于等于 1.5mkbs, 就转码 
1 原视频码率  +  64k音频码率 h264编码,mp4文件
2 1mkbs视频码率  +  128k音频码率 h264编码,mp4文件
3 1.5mkbs视频码率 + 320k音频码率 h264编码,mp4文件

如果源文件码率大于等于 3.5mkbs, 就转码 
1 原视频码率  +  64k音频码率 h264编码,mp4文件
2 1mkbs视频码率   +  128k音频码率 h264编码,mp4文件
3 1.5mkbs视频码率 +  320k音频码率 h264编码,mp4文件
4 3.5mkbs视频码率 +  320k音频码率 h264编码,mp4文件