【发布时间】:2022-10-20 22:39:10
【问题描述】:
我正在关注本教程关于 PyTorch 的硬件加速 gpu 编码/解码 [https://pytorch.org/audio/main/hw_acceleration_tutorial.html],我遇到以下代码错误:
import torch
import torchaudio
print(torch.__version__) # 1.14.0.dev20221013+cu116
print(torchaudio.__version__) # 0.13.0.dev20221013+cu116
print(torchaudio._extension._FFMPEG_INITIALIZED) # True
from torchaudio.io import StreamReader
local_src = "vid.mp4"
cuda_conf = {
"decoder": "h264_cuvid", # Use CUDA HW decoder
"hw_accel": "cuda:0", # Then keep the memory on CUDA:0
}
def decode_vid(src, config):
frames = []
s = StreamReader(src)
s.add_video_stream(5, **config)
for i, (chunk,) in enumerate(s.stream()):
frames.append(chunk[0])
if __name__ == "__main__":
vid = decode_vid(local_src, cuda_conf)
错误消息(有些被截断)是:
文件 “/home/james/PycharmProjects/AlphaPose/Spectronix/Early_Experiments/vid_gpu_decode.py”, 第 23 行,在 decode_vid s.add_video_stream(5, **config) 文件“/home/james/anaconda3/envs/alphapose/lib/python3.7/site-packages/torchaudio/io/_stream_reader.py”, 第 624 行,在 add_video_stream hw_accel,RuntimeError:不支持的编解码器:“h264_cuvid”。
我有一个 RTX 3090 ti 作为我的 GPU,它支持 h264_cuvid 解码器,并且我已经能够在运行的命令行上解码视频(取自上面链接的教程)
sudo ffmpeg -hide_banner -y -vsync 0 -hwaccel cuvid -hwaccel_output_format cuda -c:v h264_cuvid -i "https://download.pytorch.org/torchaudio/tutorial-assets/stream-api/NASAs_Most_Scientifically_Complex_Space_Observatory_Requires_Precision-MP4_small.mp4" -c:a copy -c:v h264_nvenc -b:v 5M test.mp4所以似乎 torchaudio.io 没有正确使用 ffmpeg。非常感谢任何有关如何解决此问题的见解。我正在使用 Ubuntu 22.04。
【问题讨论】:
-
chunk的格式是什么?它可以是numpy数组吗? -
最终我想要一个 np 数组,是的,这就是块返回的内容。