2013-05-30 270 views
0

因此,我有一个脚本从Web抓取一堆图像,然后将它们转换为电影。然而,当我运行它时,我会遇到大量的错误。ffmpeg将图像转换为mp4错误

首先让我展示一下我运行,然后我会后的错误,因为它是巨大的:

#for gif 
#call('convert -set delay 5 -loop 0 ' + folder + '*.jpg ' + name + '.gif', shell=True) 
#for mov 
#call('convert -quality 100 ' + folder + '*.jpg ' + name + '.mov', shell=True) 
#for organized movie 
call('ffmpeg -r 10 -b 1800 -i ' + folder + '%0' + str(size) + 'd.jpg ' + name + '.mp4', shell=True) 

所以注释掉版本的做工精细,但我需要使用第三版本!下面是我从ffmpeg的得到响应:

ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers 
    built on Mar 31 2013 21:55:33 with Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn) 
    configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libfreetype --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid 
    libavutil  52. 18.100/52. 18.100 
    libavcodec  54. 92.100/54. 92.100 
    libavformat 54. 63.104/54. 63.104 
    libavdevice 54. 3.103/54. 3.103 
    libavfilter  3. 42.103/3. 42.103 
    libswscale  2. 2.100/2. 2.100 
    libswresample 0. 17.102/0. 17.102 
    libpostproc 52. 2.100/52. 2.100 
Please use -b:a or -b:v, -b is ambiguous 
[mjpeg @ 0x7f8cc402a800] [IMGUTILS @ 0x7fff5a680ae0] Picture size 10835x53928 is invalid 
    Last message repeated 26 times 
[mjpeg @ 0x7f8cc402a800] Found EOI before any SOF, ignoring 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (cf) 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (c8) 
[mjpeg @ 0x7f8cc402a800] [IMGUTILS @ 0x7fff5a680ae0] Picture size 54310x53928 is invalid 
[mjpeg @ 0x7f8cc402a800] only 8 bits/component accepted 
    Last message repeated 8 times 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (c5) 
[mjpeg @ 0x7f8cc402a800] [IMGUTILS @ 0x7fff5a680ae0] Picture size 10835x53928 is invalid 
    Last message repeated 12 times 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (cf) 
[mjpeg @ 0x7f8cc402a800] only 8 bits/component accepted 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (cf) 
[mjpeg @ 0x7f8cc402a800] only 8 bits/component accepted 
[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (cf) 
[mjpeg @ 0x7f8cc402a800] only 8 bits/component accepted 
[image2 @ 0x7f8cc4029c00] decoding for stream 0 failed 
[image2 @ 0x7f8cc4029c00] Could not find codec parameters for stream 0 (Video: mjpeg): unspecified size 
Consider increasing the value for the 'analyzeduration' and 'probesize' options 
/Users/ryansaxe/Desktop/kaggle_parkinsons/MOVIES/%03d.jpg: could not find codec parameters 

注:[mjpeg @ 0x7f8cc402a800] mjpeg: unsupported coding type (cf) [mjpeg @ 0x7f8cc402a800] only 8 bits/component accepted重复约30次,但我把它剪出来的回溯,因为它是压倒性的。

问题:我做错了什么,如何解决?

编辑:

我下载使用JPEG文件的urllib Python库的urlretrieve。这是我如何保存它们:

for src,name in zip(urls,range(len(urls))): 
    file_name = folder + str(name) + '.jpg' 
    urlretrieve(src, file_name) 
+0

在使用'call'之前打印行。你可能会把错误传递给ffmpeg。顺便说一句,将'-b 1800'改为'-b:v 1800K'或将其删除 – JBernardo

+0

哪一行?那个电话正在使用? –

+0

FFmpeg似乎对JPEG文件不满意。你确定他们有效吗?他们都是连续的吗?你能用其他软件解码吗? –

回答

0

首先,添加一行:

print('ffmpeg -r 10 -b 1800 -i ' + folder + '%0' + str(size) + 'd.jpg ' + name + '.mp4') 

call之前。

其次,从shell运行此行。从那里调试。

细分问题有帮助。