如何使用 PySide 以二进制格式分割视频 [已关闭]

how to segment a video in binary format with PySide [closed]

提问人:baskcat 提问时间:11/16/2023 最后编辑:Christoph Rackwitzbaskcat 更新时间:11/20/2023 访问量:52

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

6天前关闭。

这篇文章在 2 天前被编辑并提交审核,未能重新打开帖子:

原始关闭原因未解决

我已经看到,只要视频是格式的,就可以打开和分割视频。就我而言,我的视频是二进制格式,我可以加载和复制,但不幸的是,我无法理解这个库,也找不到任何方法来分割文档中的视频。opencv.mp4PySide6

当我尝试打开它时,出现以下错误:opencv

cap = cv.VideoCapture('vid.raw')
[rawvideo @ 0x7fe51d045b80] Invalid pixel format.
[rawvideo @ 0x7fe51d045b80] Invalid pixel format.
[rawvideo @ 0x7fe4ec71cdc0] Invalid pixel format.
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:1278 open Could not open codec rawvideo, error: -22
[ERROR:[email protected]] global cap_ffmpeg_impl.hpp:1286 open VIDEOIO/FFMPEG: Failed to initialize VideoCapture
OpenCV: Couldn't read video stream from file "vid.raw"

关于文件格式,当我运行这样的程序时,我得到的就是:mediainfo

$mediainfo vid.raw 
General
Complete name                            : vid.raw
File size                                : 138 MiB
python qt opencv 视频处理 pyside6

评论

0赞 Christoph Rackwitz 11/16/2023
OpenCV可以读取多种视频文件。为此,它使用 ffmpeg。
0赞 baskcat 11/16/2023
没错,我通过运行 .但是,它仍然不加载二进制文件。pip install opencv-python-headless[ffmpeg]
1赞 Christoph Rackwitz 11/17/2023
所有视频文件都是二进制的。如果你真的有一个“原始”的未压缩文件,那么它要么带有描述像素格式和帧大小的元数据,要么它不是真正的原始文件,而是特定的容器和视频流格式。最小的可重现示例意味着您足够详细地展示您的问题,包括数据。
0赞 musicamante 11/17/2023
您如何加载和复制这些视频?“In PySide6”是一个充分的解释,因为Qt可以通过QtMultimedia模块播放媒体,该模块使用底层后端:从Qt6开始,提供了一个ffmpeg后端(从6.5开始设置为默认值),但它是基于内置的ffmpeg版本,所以除非你自己构建Qt6,否则它永远不会使用现有的ffmpeg安装。正如 Christoph 所指出的,所有视频文件都是二进制的(AFAIK,没有真正的视频格式使用“文本”来存储其内容),所以你对“我的视频是二进制格式”的定义没有多大意义。
1赞 VC.One 11/18/2023
@baskcat 你是想说视频数据存在于变量(例如:字节数组)而不是文件中吗?这就是你所说的“二进制”吗?“我可以用 PySide6 加载和重现”如何?展示如何访问/使用此“二进制文件”可能有助于其他人为您提供有关细分的建议。您的二进制数据代表什么视频编解码器/格式?是MP4字节吗?

答: 暂无答案