从mxf到mp4的Nvidia Nvenc视频转换在内部多个流时出错

梅苏特罐

我正在尝试将具有多个视频流和一个音频流的视频从mxf格式转换为mp4格式,并出现错误。我怎么解决这个问题?谢谢。

E:\video>ffmpeg -loglevel error -y -i E:\video\19_12_2018\Files\MEDIA\media_data.mxf -map 0 -c:v h264_nvenc -acodec copy nvidia_output.mp4

[h264_nvenc @ 0000020b30c86e80] OpenEncodeSessionEx failed: out of memory (10)
[h264_nvenc @ 0000020b30c86e80] No NVENC capable devices found
Error initializing output stream 0:2 -- Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or height

[h264_nvenc @ 00000204c1e37040] OpenEncodeSessionEx failed: out of memory (10)
[h264_nvenc @ 00000204c1e37040] No NVENC capable devices found
[h264_nvenc @ 00000204c1e37040] Nvenc unloaded
[jpeg2000 @ 00000204c2d90080] End mismatch 1
    Last message repeated 1 times
Error initializing output stream 0:2 -- Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or height

我的FFPROBE输出

E:\ video> ffmpeg ffprobe 
ffmpeg版本4.1版权所有(c)2000-2018,
  使用gcc 8.2.1(GCC)20181017构建的FFmpeg开发人员
  配置:-- enable -gpl --enable-version3 --enable-sdl2 --enable -fontconfig 
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype 
--enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb 
--enable- libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy 
--enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx 
--enable-libwavpack --enable-libwebp --enable- libx264 --enable-libx265  
--enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp
--enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa 
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf 
--enable -ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec 
 --enable-dxva2 --enable-avisynth 
  libavutil 56. 22.100 / 56. 22.100 
  libavcodec 58. 35.100 / 58. 35.100 
  libavformat 58 
  。20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 
  libavfilter 7. 40.101 / 7. 40.101 
  libswscale 5. 3.100 / 5. 3.100 
  libswresample 3. 3.100 / 
  3。3.100 libpostproc 55. 3.100 / 55。3.100
林正浩

如果您使用的是消费级NVIDIA GPU,则在固件和驱动程序级别强制执行同时最大NVENC会话限制为2,这是您所看到的错误。有关更多信息,请参阅NVIDIA GPU矩阵

有两种方法可以克服此限制:

1.通过-map选项明确选择要编码的视频流,以便每个会话在任何给定时间仅编码两个视频流。下面的示例仅选择第一个和第二个视频流:

E:\video>ffmpeg -loglevel error -y -i E:\video\19_12_2018\Files\MEDIA\media_data.mxf -map 0:v:0 -map 0:v:1 -map:0:a -c:v h264_nvenc -acodec copy nvidia_output.mp4

如果为正在使用的输入文件提供ffprobe输出,那就太好了,这样,我们可以建议如何处理其他视频流。如果需要的话,可以选择使用基于软件的编码器(例如x264)。

2.覆盖上述的上述NVENC会话计数限制:这将要求您修补存储库中记录的NVIDIA驱动程序Linux的说明也可在此处获得

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章