2017-10-27 56 views
2

私はいくつかの画像を使ってPythonで作業していますが、サイズ= 961x509の画像をMP4ムービーファイルに変換しようとしています。 、Python ImageIO警告:root:IMAGEIO FFMPEG_WRITER警告

WARNING:root:IMAGEIO FFMPEG_WRITER WARNING: input image is not divisible by macro_block_size=16, resizing from (509L, 961L) to (512L, 976L) to ensure video compatibility with most codecs and players. To prevent resizing, make your input image divisible by the macro_block_size or set the macro_block_size to None (risking incompatibility). You may also see a FFMPEG warning concerning speedloss due to data not being aligned. [swscaler @ 04f8ac40] Warning: data is not aligned! This can lead to a speedloss

警告が私のイメージの解像度で表示されていることを問題、その解像度が2で割り切れる必要があります:私はすでにこれをやってきたし、それが働いていますが、私はこのような何かを言う警告と非常に厄介な問題を持っていますしかし、それは私のものではありません。もう一度表示されないようにこの警告を出す可能性はありますか?画像のサイズを変更することはできませんし、同時にサイズを変更したくないためです。ここで

は私のコードです:

ready_images = [] 

for img in videos['Images']: 
    image = imageio.imread(img.fileName) 
    ready_images.append(image) 

videoName = videos['Images'][0].gifLocationPath + "//" + videos['Name'] 
imageio.mimwrite(videoName, ready_images, 'MP4') 

は私のためのソリューションを持っているか誰もここですか?

UPDATE:

私はつもりは(それは私が知っている唯一の方法です)、このようにNoneにmacro_block_sizeを入れてる場合:

ready_images = [] 

for img in videos['Images']: 
    image = imageio.imread(img.fileName) 
    ready_images.append(image) 

video_name = videos['Images'][0].gifLocationPath + "//" + videos['Name'] 
imageio.mimwrite(video_name, ready_images, 'MP4', macro_block_size = None) 

は、私は、このエラーメッセージが表示されます。

Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Traceback (most recent call last): File "", line 146, in run() File "", line 136, in run for i, _ in tqdm(enumerate(pool.imap_unordered(generateGIFsWithThreads, videoList))): File "", line 953, in iter for obj in iterable: File "", line 673, in next raise value IOError: [Errno 32] Broken pipe

FFMPEG COMMAND: ffmpeg -y -f rawvideo -vcodec rawvideo -s 961x509 -pix_fmt rgb24 -r 10.00 -i - -an -vcodec libx264 -pix_fmt yuv420p -crf 25 -v warning D:\work\hero_forge\build\win32\Documents\GIFs\CH3_M1_0.mp4

FFMPEG STDERR OUTPUT:

+0

:_「リサイズないようにするには、ご使用の入力画像をmacro_block_sizeで割り切れるか、またはmacro_block_sizeをNone(非互換性)に設定してください。 "_ –

+0

私はこれを知っています...これは私がすでに試したことですが、私は質問で言います。だから私はちょうど私の質問を更新した、私のための解決策があれば教えてください – cavaler12345

答えて

0

Googleが探している人の場合は、これをフォローアップしてください答え...余分なパラメータをワイルドカードとして追加する方が良い。 macro_block_sizeを正しい書式のkargとして追加するだけです。たとえば:

kargs = { 'fps': 3, 'quality': 10, 'macro_block_size': None, 
    'ffmpeg_params': ['-s','600x450'] } 
imageio.mimsave(gifOutputPath, images, 'FFMPEG', **kargs) 

OPの例では、それは次のようになります。警告メッセージは文字通りそれを取り除くために、それはありますなぜあなたを伝えるとどのようにされて

ready_images = [] 

for img in videos['Images']: 
    image = imageio.imread(img.fileName) 
    ready_images.append(image) 

video_name = videos['Images'][0].gifLocationPath + "//" + videos['Name'] 
kargs = { 'macro_block_size': None } 
imageio.mimwrite(video_name, ready_images, 'MP4', **kargs)