Opencv 在GPU上解码'ts'视频?
我有一个Nvidia Geforce GTX 1080Ti,我正在使用它进行视频处理。我尝试在GPU上解码视频,并且能够解码Opencv 在GPU上解码'ts'视频?,opencv,video,ffmpeg,Opencv,Video,Ffmpeg,我有一个Nvidia Geforce GTX 1080Ti,我正在使用它进行视频处理。我尝试在GPU上解码视频,并且能够解码Mpeg-4视频。但是,问题是当我尝试将此用于ts文件时。它会出错,并显示一条消息,说明该格式不受支持。我正在使用opencv::cudacodec::VideoReader解码视频 我试过几种方法- 生成一个编码会话,将ts编码为mp4,然后解码。然而,这似乎有点过头了 使用CPU解码,然后将帧上传到GPU进行处理。这似乎是目前最好的解决方案。然而,在GPU上使用mp4
Mpeg-4
视频。但是,问题是当我尝试将此用于ts
文件时。它会出错,并显示一条消息,说明该格式不受支持。我正在使用opencv::cudacodec::VideoReader
解码视频
我试过几种方法-
- 生成一个编码会话,将
编码为ts
,然后解码。然而,这似乎有点过头了mp4
- 使用CPU解码,然后将帧上传到GPU进行处理。这似乎是目前最好的解决方案。然而,在GPU上使用
文件所需的时间几乎是使用时间的4倍mp4
- 使用
复制音频/视频流,并将容器更改为ffmpeg
。这导致在GPU上解码时的帧数几乎是原来的两倍mp4
我正在寻找在GPU上解码
ts
文件的解决方案 将文件扩展名更改为“.mpeg”。ts'本质上是一个“.mpeg”文件。希望这能有所帮助。容器无关紧要-解复用始终在软件中。如果GPU支持编解码器,那么它将在ffmpeg上工作。OpenCV可能会受到更大的限制。您能否指定为什么使用ffmpeg和-codec copy选项在GPU上解码时会导致两倍的帧数?@Harry我尝试了-acodec copy-vcodec copy
不。传输流和容器文件根本不是一回事