2016-06-04 2 views
3

Использование FFmpeg строить здесь: https://github.com/illuspas/ffmpeg-hw-win32FFmpeg Аппаратное ускорение с NVENC производит Половина Зеленый видеовыход

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 

./configure prefix =/дом/aliang/FFmpeg/x86_64 --enable-маленький --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

Я запускаю Windows на MacBook Pro. Я также попытался с более новой сборкой и имел тот же результат.

Видео входные от sample-videos.com.

FFmpeg команда Я бегу это:

ffmpeg -y -i sample.mp4 -vcodec nvenc_h264 -pixel_format yuv420p -f mp4 sample-out-nvenc.mp4 

выборки из-nvenc.mp4 выглядит это через ffplay или VLC:

enter image description here

Когда я захватить кадр с помощью jpeg2 , цвета выглядят нормально, но высота сжимается.

ffmpeg -y -ss 15.5 -i sample.mp4 -vframes 1 -s 480x300 -f image2 grab.jpg 

enter image description here

Результаты ffprobe для вывода (выборки из-nvenc.mp4):

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:

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 
+1

Это похоже на ошибку, связанную с FFmpeg, где-то между командной строкой и NVENC, однако это вряд ли является вопросом программирования (если вы, конечно, не копаете исходный код FFmpeg). –

+1

Да, ты прав. Хотя, я нашел решение, используя '-pix_fmt nv12', что дает отличный результат. Я найду где-нибудь еще, чтобы опубликовать его. –

+0

Возникает ли проблема со сборкой 'ffmpeg' из текущей ветви git master? – LordNeckbeard

ответ

1

У меня возникла такая же проблема с nvenc через другую usecase. Кажется, это вызвано последним драйвером nvidia quadro. Проблема была решена, когда я вернул ее. Поскольку у вас есть macbook, я предполагаю, что справедливо предположить, что у вас нет карты квадроциклов, но это все еще может быть проблемой драйвера.

2

У меня была такая же проблема с GTX 980. Это началось после установки обновления драйвера 368.22. Я загрузил и вернул драйвер версии 365.19 из nividia driver archive, и проблема исчезла.

Значит, это влияет на все карты и драйверы nvidia.