Django Celery FFMPEG:转换视频文件

时间:2012-01-02 13:55:04

标签: python django ffmpeg celery

我正在尝试通过Celery任务使用FFMPEG转换视频文件。生成的命令看起来像

ffmpeg -i /path/to/flv -ar 22050 -ab 96k -r 24 -b 600k -f flv path/to/flv/transcoded/flv_movie.flv

当我调用任务TranscodeVideoTask.delay(src=filepath, dst=destination_path)时 我得到flv_movie.flv文件,但其大小只有200Kb和调试输出

Press [q] to stop, [?] for help
[h264 @ 0x10205a200] Reference 3 >= 3
[h264 @ 0x10205a200] error while decoding MB 7 5, bytestream (690)
[h264 @ 0x10205a200] concealing 762 DC, 762 AC, 762 MV errors
frame=   40 fps=  0 q=2.0 Lsize=     136kB time=00:00:01.66 bitrate= 668.2kbits/s dup=0 drop=9    
video:114kB audio:20kB global headers:0kB muxing overhead 1.814991%

TranscodeVideoTask来源

@task(name="transcode.media")
def TranscodeVideoTask(src, dst):
    command = commands.get("flv") % {"src": src, "dst": dst}
    os.system(src, dst)
    filename = os.path.join(dst, "flv_movie.flv")
    YamdiInjector.yamdi(filename, dst)

当在控制台中手动执行相同的命令时,它可以正常工作。

UPDATE 到目前为止,我已经在我的bash文件中编写了以下ffmpeg指令,它几乎可以转换我测试过的每个avi文件

#!/bin/sh
INPUT=$1
OUTPUT=$2/flv_movie.flv

echo "Input file: ${INPUT}"
echo "Output file: ${OUTPUT}"
echo `ffmpeg -y -i $INPUT -ar 44100 -ab 128k -ac 2 -sameq -f flv $OUTPUT`

什么可能导致这个奇怪的问题?

苏丹

0 个答案:

没有答案