使用ffmpeg-python读取视频时,如果视频元数据包含"rotate"属性,则默认情况下ffmpeg会根据旋转值转置传入的字节.
我想取消自动旋转.我try 了以下方法,但没有成功:
import ffmpeg
process = (
ffmpeg
.input(filename)
.output('pipe:', format='rawvideo', pix_fmt='yuv420p', loglevel=0, vsync='0')
.global_args('-noautorotate')
.run_async(pipe_stdout=True)
)
代码运行时没有任何问题,但旋转并没有被忽略,正如我所期望的那样.
根据这个:https://gist.github.com/vxhviet/5faf792f9440e0511547d20d17208a76,noautorotate参数应该在输入之前传递.
我try 了以下方法:
process = (
ffmpeg
.global_args('-noautorotate')
.input(filename)
.output('pipe:', format='rawvideo', pix_fmt='yuv420p', loglevel=0, vsync='0')
.run_async(pipe_stdout=True)
)
同样没有成功:
AttributeError: module 'ffmpeg' has no attribute 'global_args'
有什么建议吗?
编辑
将noautorotate作为kwargs传递也不起作用(读取后的视频大小为0)
process = (
ffmpeg
.input(self.file, **{'noautorotate':''})
.output('pipe:', format='rawvideo', pix_fmt='yuv420p', loglevel=1, vsync='0')
.run_async(pipe_stdout=True)
)