如何从VideoCapture中的对象中检索四字符编解码器代码OpenCV 4?当我尝试检查它时,我得到了一个浮动:
import cv2
movie_name = 'fubar.mp4'
movie = cv2.VideoCapture(movie_path)
codec_code = movie.get(cv2.CAP_PROP_FOURCC)
print(codec_code)
Run Code Online (Sandbox Code Playgroud)
这会打印出类似的内容828601953.0。有很多关于如何创建编解码器代码的线程,但我还没有找到任何关于如何从VideoCapturePython 中的任意对象中提取和读取代码的线程。
我知道文件名信息丰富(mp4),但这并没有真正指定我所追求的确切的四字符编码(例如,如果我想在某些处理后重新保存为新电影,或者只是显示代码作为元数据提供给用户)。
相关主题
有一个关于如何在 C++ 中执行此操作的主题,如果有人可以翻译成 Python,这将是我想的答案:
Qt or OpenCV: print out the codec of a video file
尝试这个:
hex(int(828601953.0))
Run Code Online (Sandbox Code Playgroud)
印刷:
'0x31637661'
Run Code Online (Sandbox Code Playgroud)
现在man ascii获取 ASCII 表并查找十六进制:
31 = 1
63 = c
76 = v
61 = a
Run Code Online (Sandbox Code Playgroud)
所以你的 FOURCC 是avc1。
不确定 Python 中是否有更好的方法,但这似乎没问题:
h = int(828601953.0)
chr(h&0xff) + chr((h>>8)&0xff) + chr((h>>16)&0xff) + chr((h>>24)&0xff)
Run Code Online (Sandbox Code Playgroud)
印刷:
'avc1'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |