我正在尝试做一些类似问题的事情这里和这里,但有一点不同。我尝试沿 Y 轴或 X 轴翻转视频,而不是旋转。
这些线程中修改旋转矩阵的解决方案似乎是完美的方法,我可以修改参数来执行旋转。但我不知道翻转视频的值应该是多少。
引用这些帖子:
- 无旋转:00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40180°:FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40顺时针90°:00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4090°逆时针:00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40
我无法在网上找到说明这两行值代表什么含义的文档,因此无法实现翻转。
我也尝试了 ffmpeg 的替代方案,但遇到了问题:
ffmpeg -i 输入.mp4 -vf hflip 输出.mp4
... 由于应用了过滤的“vf”标志,这会对文件重新编码。
ffmpeg -i 输入.mp4 -vf "transpose=0,transpose=1" 输出.mp4
... 由于“vf”标志,这也对文件进行了重新编码。
ffmpeg -i 输入.mp4 -metadata:s:v rotate="90" -codec copy 输出.mp4
... 这无需重新编码即可工作(并且几乎与直接编辑文件一样快),但显然旋转无法实现翻转。我有没有办法使用该metadata
选项transpose
?
ffmpeg -i 输入.mp4 -vf "transpose=0,transpose=1" -codec copy 输出.mp4
... 这给了我一个错误,说过滤和流复制不能一起使用。
我能做到我想做的事情吗?如何在不编码的情况下实现视频翻转?即使我最终进行了编码,我如何以无损的方式进行编码?
我本来想在上面提到的帖子上发帖寻求帮助,但我是这里的新用户,因此无法在帖子上发表评论。