0

所以我有一个脚本,它可以从网上抓取一堆图像,然后将它们转换成电影。然而,当我运行它时,我得到了一大堆错误。

首先让我展示我正在运行的内容,然后我将发布错误,因为它很大:

#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 次,但我把它从追溯中删掉了,因为它是压倒性的。

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

编辑:

我使用 urllib python 库的urlretrieve下载 jpeg 文件。这就是我保存它们的方式:

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

1 回答 1

0

首先,添加以下行:

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

就在之前call

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

细分问题会有所帮助。

于 2013-05-31T04:43:38.687 回答