我正在python中使用一些图像,我正在尝试将一系列尺寸= 961x509的图像转换为MP4电影文件.我已经做了这个并且它正在工作但我有一个非常烦人的问题,警告说这样的事情:
警告:root:IMAGEIO FFMPEG_WRITER警告:输入图像不能被macro_block_size = 16整除,从(509L,961L)调整为(512L,976L)以确保与大多数编解码器和播放器的视频兼容性.要防止调整大小,请使输入图像可被macro_block_size整除,或将macro_block_size设置为None(存在不兼容的风险).由于数据未对齐,您可能还会看到有关速度损失的FFMPEG警告.[swscaler @ 04f8ac40]警告:数据未对齐!这可能导致速度损失
出现警告的问题是我的图像分辨率,该分辨率应该可以被2整除,但我的不是.是否有任何可能只是让这个警告不再出现?因为我无法改变图像的大小,同时我也不想调整所有图像的大小.
这是我的代码:
Run Code Online (Sandbox Code Playgroud)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')
这里有人对我有什么解决方案吗?
更新:
如果我要以这种方式将macro_block_size放到None(这是我知道的唯一方法):
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)
Run Code Online (Sandbox Code Playgroud)
我将收到此错误消息:
打开输出流#0的编码器时出错:0 - 可能是不正确的参数,如bit_rate,rate,width或height
回溯(最近一次调用最后一次):文件"",第146行,在run()文件"",第136行,在运行中为i,_在tqdm中(枚举(pool.imap_unordered(generateGIFsWithThreads,videoList))):文件" ",第953行,iter for obj in iterable:File"",第673行,在下一个提升值IOError:[Errno 32] Broken pipe
FFMPEG命令:ffmpeg -y -f rawvideo -vcodec rawvideo …