首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FFmpeg硬件加速与NVENC产生半绿色输出视频

FFmpeg硬件加速与NVENC产生半绿色输出视频
EN

Stack Overflow用户
提问于 2016-06-04 19:43:20
回答 2查看 4.1K关注 0票数 4

使用此处找到的FFmpeg构建:https://github.com/illuspas/ffmpeg-hw-win32

代码语言:javascript
复制
gcc 5.3.0
--enable-nvenc nvidia_video_sdk_6.0.1
--enable-libmfx Intel(R)_Media_SDK_2016.0.1
--enable-libfdk-aac 0.1.4
--enable-libspeex 1.2rc1
--enable-libx264 1:148.20150725
--enable-libopenh264 1.5.0
--enable-libx265 1.8
--enable-libopus 1.1.2
--enable-libmp3lame 3.99.5
--enable-libkvazaar 0.8.2

./配置-前缀=/home/aliang/FFmpeg/x86_64-启用-小-禁用-调试-禁用-doc-使能-libopus-cc=‘ccache x86_64-w64-w64-mingw32-gcc’-交叉前缀=x86_64-w64-混合w32-使能-交叉编译-目标-os=明w32-启用-libfdk-aac-启用-libmp3lame启用-libopus-启用-libspeex-启用-libmfx 264-使使-libmfx 265-启用libmfx-。-启用-libopenh264-启用-libkvazaar-启用-gpl-启用-非自由

我在MacBook Pro上运行Windows。我还尝试了一个最近的版本,并有相同的输出。

输入视频来自sample-videos.com

我正在运行的ffmpeg命令是:

代码语言:javascript
复制
ffmpeg -y -i sample.mp4 -vcodec nvenc_h264 -pixel_format yuv420p -f mp4 sample-out-nvenc.mp4

Mp4通过ffplay或vlc看起来如下所示:

当我使用jpeg2抓取一个框架时,颜色看起来是正常的,但是高度是压缩的。

代码语言:javascript
复制
ffmpeg -y -ss 15.5 -i sample.mp4 -vframes 1 -s 480x300 -f image2 grab.jpg

Ff探头的输出结果(样本-out-nvenc.mp4):

代码语言:javascript
复制
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample-out-nvenc.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.25.100
  Duration: 00:00:31.02, start: 0.021333, bitrate: 1994 kb/s
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1650 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 342 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

最后,nvenc编码命令的输出:

代码语言:javascript
复制
ffmpeg -y -i sample.mp4 -vcodec nvenc_h264 -pixel_format yuv420p -f mp4 sample-out-nvenc.mp4
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.0 (GCC)
  configuration: --prefix=/home/aliang/FFmpeg/x86_64 --enable-small --disable-debug --disable-doc --arch=x86_64 --cc='ccache x86_64-w64-mingw32-gcc' --cross-prefix=x86_64-w64-mingw32- --enable-cross-compile --target-os=mingw32 --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libspeex --enable-libx264 --enable-libx265 --enable-libmfx --enable-nvenc --enable-libopenh264 --enable-libkvazaar --enable-gpl --enable-nonfree
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf53.24.2
  Duration: 00:00:31.00, start: 0.000000, bitrate: 1353 kb/s
    Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 966 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
Output #0, mp4, to 'sample-out-nvenc.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.25.100
    Stream #0:0(und): Video: h264 (nvenc_h264) ([33][0][0][0] / 0x0021), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 2000 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
      encoder         : Lavc57.24.102 nvenc_h264
    Side data:
      unknown side data type 10 (24 bytes)
    Stream #0:1(und): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, 5.1, fltp, 341 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : SoundHandler
      encoder         : Lavc57.24.102 aac
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (nvenc_h264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
frame=  774 fps=253 q=-0.0 Lsize=    7551kB time=00:00:30.99 bitrate=1995.6kbits/s speed=10.1x
video:6236kB audio:1297kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.243011%
[aac @ 000001cdd9900520] Qavg: 743.457
EN

回答 2

Stack Overflow用户

发布于 2016-06-17 06:17:43

我的GTX 980也有同样的问题。这是在安装驱动程序更新368.22之后开始的。我从nividia驱动程序存档下载并恢复到365.19版驱动程序,问题就解决了。

因此,它似乎影响了所有的nvidia卡和司机。

票数 2
EN

Stack Overflow用户

发布于 2016-06-13 10:47:45

通过另一种用法,我在nvenc中也遇到了同样的问题。这似乎是由最新的nvidia quadro司机引起的。当我回到问题时,这个问题就解决了。由于你有一个macbook,我想这是公平的假设你没有象限卡,但它仍然可能是一个司机问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37634322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档