01.10.2023, 16:56
Willing to understand what is necessary to do, I think that we need to obtain with NVEnc a video with "uncompressed" frames.
This the first issue, because with NVEnc, i obtain the following output
The frames are compressed " H.264/AVC Unknown @ Level auto ", this fact is confirmed by Mediainfo
This is the first issue. I tried to fix the problem by using ffmpeg that is able to provide in output "true" raw video, but I think that the second pipe is "frozing" the process because I'm unable to forward the frames, while this is possible by using only ffmpeg, even if in this case the colors are wrong.
So the question is, it is possible to use NVEnc to produce in output "true" uncompressed frames ?
While using "ffmpeg" in pipe I obtaing the following output
So it seems that the pipe process is broken, and this could explain the frozen process.
This the first issue, because with NVEnc, i obtain the following output
NVEncC64.exe --avhw --input E:\VideoTest\TestSubs\TestSubs-1.mp4 --lossless --output-format raw --output E:\VideoTest\TestSubs\Test.raw --------------------------------------------------------------------------------
E:\VideoTest\TestSubs\Test.raw
--------------------------------------------------------------------------------
NVEncC (x64) 7.31 (r2580) by rigaya, Aug 28 2023 13:07:12 (VC 1929/Win)
OS Version Windows 10 x64 (19045) [UTF-8]
CPU Intel Core i9-10900 @ 2.80GHz [TB: 4.82GHz] (10C/20T)
GPU #0: NVIDIA GeForce RTX 3060 (3584 cores, 1837 MHz)[PCIe3x16][537.13]
NVENC / CUDA NVENC API 12.1, CUDA 12.2, schedule mode: auto
Input Buffers CUDA, 20 frames
Input Info avcuvid: H.264/AVC, 720x300, 25/1 fps
AVSync vfr
Vpp Filters copyDtoD
Output Info H.264/AVC Unknown @ Level auto
720x300p 1:1 25.000fps (25/1fps)
Encoder Preset default
Rate Control CQP I:0 P:0 B:0 (lossless)
ChromaQPOffset cb:0 cr:0
Split Enc Mode auto
Lookahead off
GOP length 250 frames
B frames 3 frames [ref mode: disabled]
Ref frames 3 frames, MultiRef L0:auto L1:auto
AQ off
Others mv:auto cabac deblock adapt-transform:auto bdirect:auto
encoded 3050 frames, 1034.95 fps, 9176.35 kbps, 133.46 MB
encode time 0:00:02, CPU: 3.1%, GPU: 15.0%, VE: 49.7%, VD: 27.0%, GPUClock: 1890MHz, VEClock: 1665MHz
frame type IDR 13
frame type I 13, total size 1.01 MB
frame type P 769, total size 40.79 MB
frame type B 2268, total size 91.65 MB
The frames are compressed " H.264/AVC Unknown @ Level auto ", this fact is confirmed by Mediainfo
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High 4:4:4 Predictive@L3
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 3 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2 min 2 s
Bit rate : 9 176 kb/s
Width : 720 pixels
Height : 300 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 1.699
Stream size : 133 MiB (100%)
Default : Yes
Forced : No
This is the first issue. I tried to fix the problem by using ffmpeg that is able to provide in output "true" raw video, but I think that the second pipe is "frozing" the process because I'm unable to forward the frames, while this is possible by using only ffmpeg, even if in this case the colors are wrong.
So the question is, it is possible to use NVEnc to produce in output "true" uncompressed frames ?
While using "ffmpeg" in pipe I obtaing the following output
NVEncC64.exe --avhw --input E:\VideoTest\TestSubs\TestSubs-1.mp4 --lossless --output-format raw --output -| ffmpeg.exe -i - -vcodec rawvideo -pix_fmt yuv420p -loglevel debug -f rawvideo E:\VideoTest\TestSubs\Test2.raw
--------------------------------------------------------------------------------
-
--------------------------------------------------------------------------------
NVEncC (x64) 7.31 (r2580) by rigaya, Aug 28 2023 13:07:12 (VC 1929/Win)
OS Version Windows 10 x64 (19045) [UTF-8]
CPU Intel Core i9-10900 @ 2.80GHz [TB: 4.70GHz] (10C/20T)
GPU #0: NVIDIA GeForce RTX 3060 (3584 cores, 1837 MHz)[PCIe3x16][537.13]
NVENC / CUDA NVENC API 12.1, CUDA 12.2, schedule mode: auto
Input Buffers CUDA, 20 frames
Input Info avcuvid: H.264/AVC, 720x300, 25/1 fps
AVSync vfr
Vpp Filters copyDtoD
Output Info H.264/AVC Unknown @ Level auto
720x300p 1:1 25.000fps (25/1fps)
Encoder Preset default
Rate Control CQP I:0 P:0 B:0 (lossless)
ChromaQPOffset cb:0 cr:0
Split Enc Mode auto
Lookahead off
GOP length 250 frames
B frames 3 frames [ref mode: disabled]
Ref frames 3 frames, MultiRef L0:auto L1:auto
AQ off
Others mv:auto cabac deblock adapt-transform:auto bdirect:auto
encoded 3050 frames, 767.88 fps, 9176.35 kbps, 133.46 MB
encode time 0:00:03, CPU: 1.4%, GPU: 8.6%, VE: 34.2%, VD: 20.6%, GPUClock: 1837MHz, VEClock: 1612MHz
frame type IDR 13
frame type I 13, total size 1.01 MB
frame type P 769, total size 40.79 MB
frame type B 2268, total size 91.65 MB
ffmpeg version N-100400-g5f7dc836ce-gd76469378d+4 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
configuration: --pkg-config=pkgconf --cc='ccache gcc' --cxx='ccache g++' --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --disable-debug --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libaom --enable-libopenmpt --enable-version3 --enable-libsvthevc --enable-libsvtav1 --enable-libkvazaar --enable-libzmq --enable-libvmaf --enable-vapoursynth --disable-libdavs2 --enable-librav1e --enable-mbedtls --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DZMQ_STATIC --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads --extra-cflags=-DKVZ_STATIC_LIB
libavutil 56. 62.100 / 56. 62.100
libavcodec 58.115.102 / 58.115.102
libavformat 58. 65.100 / 58. 65.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 93.100 / 7. 93.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument '-'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'rawvideo'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'rawvideo'.
Reading option 'E:\VideoTest\TestSubs\Test2.raw' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url -.
Successfully parsed a group of options.
Opening an input file: -.
[NULL @ 0000023ee2258500] Opening 'pipe:' for reading
[pipe @ 0000023ee2259600] Setting default whitelist 'crypto,data'
[AVIOContext @ 0000023ee2259800] Statistics: 1048576 bytes read, 0 seeks
pipe:: Invalid data found when processing input
So it seems that the pipe process is broken, and this could explain the frozen process.