Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 在GPU上解码'ts'视频?_Opencv_Video_Ffmpeg - Fatal编程技术网

Opencv 在GPU上解码'ts'视频?

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

我有一个Nvidia Geforce GTX 1080Ti,我正在使用它进行视频处理。我尝试在GPU上解码视频,并且能够解码
Mpeg-4
视频。但是,问题是当我尝试将此用于
ts
文件时。它会出错,并显示一条消息,说明该格式不受支持。我正在使用
opencv::cudacodec::VideoReader
解码视频

我试过几种方法-

  • 生成一个编码会话,将
    ts
    编码为
    mp4
    ,然后解码。然而,这似乎有点过头了
  • 使用CPU解码,然后将帧上传到GPU进行处理。这似乎是目前最好的解决方案。然而,在GPU上使用
    mp4
    文件所需的时间几乎是使用时间的4倍
  • 使用
    ffmpeg
    复制音频/视频流,并将容器更改为
    mp4
    。这导致在GPU上解码时的帧数几乎是原来的两倍

我正在寻找在GPU上解码
ts
文件的解决方案

将文件扩展名更改为“.mpeg”。ts'本质上是一个“.mpeg”文件。希望这能有所帮助。

容器无关紧要-解复用始终在软件中。如果GPU支持编解码器,那么它将在ffmpeg上工作。OpenCV可能会受到更大的限制。您能否指定为什么使用ffmpeg和-codec copy选项在GPU上解码时会导致两倍的帧数?@Harry我尝试了
-acodec copy-vcodec copy
不。传输流和容器文件根本不是一回事