编辑 MP4 Hex 数据以无损方式垂直或水平翻转视频

编辑 MP4 Hex 数据以无损方式垂直或水平翻转视频

我正在尝试做一些类似问题的事情这里这里,但有一点不同。我尝试沿 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
40
180°:
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
40
90°逆时针:
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

... 这给了我一个错误,说过滤和流复制不能一起使用。

我能做到我想做的事情吗?如何在不编码的情况下实现视频翻转?即使我最终进行了编码,我如何以无损的方式进行编码?

我本来想在上面提到的帖子上发帖寻求帮助,但我是这里的新用户,因此无法在帖子上发表评论。

相关内容