Opened 3 years ago

Last modified 3 years ago

#9291 new defect

exact=1 crop filter for nv12-format video seems to swap color components (when specifying odd crop coordinates)

Reported by: nijikilling Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: cuda
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug: when crop filtering any video in nv12 format with exact=1, it works good for even (x, y), but for odd (x, y) the resulting video has strong color mismatch as if two color components were swapped in process.

How to reproduce: decode video using h264_cuvid, in video filter specify "hwdownload,format=nv12,crop=...:x=(even):y=(even):exact=1".

In the report below, video https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4 was used, but it seems to happen on every video I checked.

ffmpeg started on 2021-06-15 at 16:40:00
Report written to "ffmpeg-20210615-164000.log"
Log level: 48
Command line:
ffmpeg -report -hwaccel cuda -c:v h264_cuvid -hwaccel_output_format cuda -vsync 0 -i /code/data/sample.mp4 -vsync 0 -cq:v 16 -c:v h264_nvenc -pix_fmt yuv420p -f mp4 -y -filter_complex "hwdownload,format=nv12,crop=w=240:h=240:x=133:y=133:exact=1" /code/data/sample-coded-2.mp4
ffmpeg version N-102632-g575e52272d Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --enable-nonfree --enable-gpl --enable-libnpp --enable-libx264 --enable-libx265 --enable-cuda --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
  libavutil      57.  0.100 / 57.  0.100
  libavcodec     59.  1.100 / 59.  1.100
  libavformat    59.  2.101 / 59.  2.101
  libavdevice    59.  0.100 / 59.  0.100
  libavfilter     8.  0.101 /  8.  0.101
  libswscale      6.  0.100 /  6.  0.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-hwaccel' ... matched as option 'hwaccel' (use HW accelerated decoding) with argument 'cuda'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_cuvid'.
Reading option '-hwaccel_output_format' ... matched as option 'hwaccel_output_format' (select output format used with HW accelerated decoding) with argument 'cuda'.
Reading option '-vsync' ... matched as option 'vsync' (video sync method) with argument '0'.
Reading option '-i' ... matched as input url with argument '/code/data/sample.mp4'.
Reading option '-vsync' ... matched as option 'vsync' (video sync method) with argument '0'.
Reading option '-cq:v' ... matched as AVOption 'cq:v' with argument '16'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_nvenc'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument 'hwdownload,format=nv12,crop=w=240:h=240:x=133:y=133:exact=1'.
Reading option '/code/data/sample-coded-2.mp4' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Applying option vsync (video sync method) with argument 0.
Applying option vsync (video sync method) with argument 0.
Applying option y (overwrite output files) with argument 1.
Applying option filter_complex (create a complex filtergraph) with argument hwdownload,format=nv12,crop=w=240:h=240:x=133:y=133:exact=1.
Successfully parsed a group of options.
Parsing a group of options: input url /code/data/sample.mp4.
Applying option hwaccel (use HW accelerated decoding) with argument cuda.
Applying option c:v (codec name) with argument h264_cuvid.
Applying option hwaccel_output_format (select output format used with HW accelerated decoding) with argument cuda.
Successfully parsed a group of options.
Opening an input file: /code/data/sample.mp4.
[NULL @ 0x55cd727d2380] Opening '/code/data/sample.mp4' for reading
[file @ 0x55cd727d3d00] Setting default whitelist 'file,crypto,data'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Processing st: 0, edit list 0 - media time: 0, duration: 67584
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Processing st: 1, edit list 0 - media time: 0, duration: 254976
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] Before avformat_find_stream_info() pos: 1055736 bytes read:36997 seeks:1 nb_streams:2
[h264 @ 0x55cd727d4b00] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 0x55cd727d4b00] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 0x55cd727d4b00] nal_unit_type: 5(IDR), nal_ref_idc: 3
[h264 @ 0x55cd727d4b00] Format yuv420p chosen by get_format().
[h264 @ 0x55cd727d4b00] Reinit context to 1280x720, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55cd727d2380] After avformat_find_stream_info() pos: 106237 bytes read:143186 seeks:2 frames:2
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/code/data/sample.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    encoder         : Lavf53.24.2
  Duration: 00:00:05.31, start: 0.000000, bitrate: 1589 kb/s
  Stream #0:0(und), 1, 1/12800: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1205 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 384 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Successfully opened the file.
[Parsed_format_1 @ 0x55cd728024c0] Setting 'pix_fmts' to value 'nv12'
[Parsed_crop_2 @ 0x55cd72804d00] Setting 'w' to value '240'
[Parsed_crop_2 @ 0x55cd72804d00] Setting 'h' to value '240'
[Parsed_crop_2 @ 0x55cd72804d00] Setting 'x' to value '133'
[Parsed_crop_2 @ 0x55cd72804d00] Setting 'y' to value '133'
[Parsed_crop_2 @ 0x55cd72804d00] Setting 'exact' to value '1'
Parsing a group of options: output url /code/data/sample-coded-2.mp4.
Applying option c:v (codec name) with argument h264_nvenc.
Applying option pix_fmt (set pixel format) with argument yuv420p.
Applying option f (force format) with argument mp4.
Successfully parsed a group of options.
Opening an output file: /code/data/sample-coded-2.mp4.
[file @ 0x55cd727fffc0] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
[AVHWDeviceContext @ 0x55cd727e5800] Loaded lib: libcuda.so.1
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuInit
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceGetCount
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceGet
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceGetAttribute
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceGetName
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceComputeCapability
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxCreate_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxSetLimit
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxPushCurrent_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxPopCurrent_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxDestroy_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemAlloc_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemAllocPitch_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemsetD8Async
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemFree_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemcpy
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemcpyAsync
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemcpy2D_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMemcpy2DAsync_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGetErrorName
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGetErrorString
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuCtxGetDevice
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDevicePrimaryCtxRetain
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDevicePrimaryCtxRelease
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDevicePrimaryCtxSetFlags
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDevicePrimaryCtxGetState
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDevicePrimaryCtxReset
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuStreamCreate
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuStreamQuery
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuStreamSynchronize
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuStreamDestroy_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuStreamAddCallback
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuEventCreate
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuEventDestroy_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuEventSynchronize
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuEventQuery
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuEventRecord
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuLaunchKernel
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuLinkCreate
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuLinkAddData
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuLinkComplete
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuLinkDestroy
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuModuleLoadData
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuModuleUnload
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuModuleGetFunction
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuModuleGetGlobal
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuTexObjectCreate
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuTexObjectDestroy
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGLGetDevices_v2
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGraphicsGLRegisterImage
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGraphicsUnregisterResource
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGraphicsMapResources
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGraphicsUnmapResources
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuGraphicsSubResourceGetMappedArray
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDeviceGetUuid
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuImportExternalMemory
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDestroyExternalMemory
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuExternalMemoryGetMappedBuffer
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuExternalMemoryGetMappedMipmappedArray
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMipmappedArrayGetLevel
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuMipmappedArrayDestroy
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuImportExternalSemaphore
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuDestroyExternalSemaphore
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuSignalExternalSemaphoresAsync
[AVHWDeviceContext @ 0x55cd727e5800] Loaded sym: cuWaitExternalSemaphoresAsync
[h264_cuvid @ 0x55cd72802100] Format cuda chosen by get_format().
[h264_cuvid @ 0x55cd72802100] Loaded lib: libnvcuvid.so.1
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidGetDecoderCaps
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCreateDecoder
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidDestroyDecoder
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidDecodePicture
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidGetDecodeStatus
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidReconfigureDecoder
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidMapVideoFrame64
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidUnmapVideoFrame64
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCtxLockCreate
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCtxLockDestroy
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCtxLock
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCtxUnlock
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCreateVideoSource
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCreateVideoSourceW
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidDestroyVideoSource
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidSetVideoSourceState
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidGetVideoSourceState
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidGetSourceVideoFormat
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidGetSourceAudioFormat
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidCreateVideoParser
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidParseVideoData
[h264_cuvid @ 0x55cd72802100] Loaded sym: cuvidDestroyVideoParser
[h264_cuvid @ 0x55cd72802100] CUVID capabilities for h264_cuvid:
[h264_cuvid @ 0x55cd72802100] 8 bit: supported: 1, min_width: 48, max_width: 4096, min_height: 16, max_height: 4096
[h264_cuvid @ 0x55cd72802100] 10 bit: supported: 0, min_width: 0, max_width: 0, min_height: 0, max_height: 0
[h264_cuvid @ 0x55cd72802100] 12 bit: supported: 0, min_width: 0, max_width: 0, min_height: 0, max_height: 0
Stream mapping:
  Stream #0:0 (h264_cuvid) -> hwdownload (graph 0)
  crop (graph 0) -> Stream #0:0 (h264_nvenc)
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
detected 64 logical cores
[graph_1_in_0_1 @ 0x55cd736116c0] Setting 'time_base' to value '1/48000'
[graph_1_in_0_1 @ 0x55cd736116c0] Setting 'sample_rate' to value '48000'
[graph_1_in_0_1 @ 0x55cd736116c0] Setting 'sample_fmt' to value 'fltp'
[graph_1_in_0_1 @ 0x55cd736116c0] Setting 'channel_layout' to value '0x3f'
[graph_1_in_0_1 @ 0x55cd736116c0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x3f
[format_out_0_1 @ 0x55cd73612ac0] Setting 'sample_fmts' to value 'fltp'
[format_out_0_1 @ 0x55cd73612ac0] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350'
[AVFilterGraph @ 0x55cd7360a380] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[h264_cuvid @ 0x55cd72802100] Format cuda chosen by get_format().
[h264_cuvid @ 0x55cd72802100] Formats: Original: cuda | HW: cuda | SW: nv12
[AVHWFramesContext @ 0x55cd730e07c0] CUDA texture alignment: 512
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[Parsed_format_1 @ 0x55cd739d6f00] Setting 'pix_fmts' to value 'nv12'
[Parsed_crop_2 @ 0x55cd739d7a00] Setting 'w' to value '240'
[Parsed_crop_2 @ 0x55cd739d7a00] Setting 'h' to value '240'
[Parsed_crop_2 @ 0x55cd739d7a00] Setting 'x' to value '133'
[Parsed_crop_2 @ 0x55cd739d7a00] Setting 'y' to value '133'
[Parsed_crop_2 @ 0x55cd739d7a00] Setting 'exact' to value '1'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] Setting 'video_size' to value '1280x720'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] Setting 'pix_fmt' to value '117'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] Setting 'time_base' to value '1/12800'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0x55cd739d8b80] w:1280 h:720 pixfmt:cuda tb:1/12800 fr:25/1 sar:1/1
[format @ 0x55cd739d9c80] Setting 'pix_fmts' to value 'yuv420p'
[auto_scaler_0 @ 0x55cd739dcc80] w:iw h:ih flags:'bilinear' interl:0
[format @ 0x55cd739d9c80] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_crop_2' and the filter 'format'
[AVFilterGraph @ 0x55cd73978b00] query_formats: 6 queried, 4 merged, 1 already done, 0 delayed
[Parsed_crop_2 @ 0x55cd739d7a00] w:1280 h:720 sar:1/1 -> w:240 h:240 sar:1/1
[auto_scaler_0 @ 0x55cd739dcc80] w:240 h:240 fmt:nv12 sar:1/1 -> w:240 h:240 fmt:yuv420p sar:1/1 flags:0x2
[h264_nvenc @ 0x55cd72805bc0] Using device cuda0 (type cuda) with h264_nvenc encoder.
[h264_nvenc @ 0x55cd72805bc0] Loaded lib: libcuda.so.1
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuInit
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceGetCount
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceGet
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceGetAttribute
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceGetName
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceComputeCapability
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxCreate_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxSetLimit
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxPushCurrent_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxPopCurrent_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxDestroy_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemAlloc_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemAllocPitch_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemsetD8Async
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemFree_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemcpy
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemcpyAsync
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemcpy2D_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMemcpy2DAsync_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGetErrorName
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGetErrorString
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuCtxGetDevice
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDevicePrimaryCtxRetain
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDevicePrimaryCtxRelease
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDevicePrimaryCtxSetFlags
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDevicePrimaryCtxGetState
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDevicePrimaryCtxReset
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuStreamCreate
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuStreamQuery
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuStreamSynchronize
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuStreamDestroy_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuStreamAddCallback
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuEventCreate
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuEventDestroy_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuEventSynchronize
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuEventQuery
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuEventRecord
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuLaunchKernel
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuLinkCreate
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuLinkAddData
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuLinkComplete
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuLinkDestroy
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuModuleLoadData
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuModuleUnload
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuModuleGetFunction
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuModuleGetGlobal
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuTexObjectCreate
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuTexObjectDestroy
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGLGetDevices_v2
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGraphicsGLRegisterImage
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGraphicsUnregisterResource
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGraphicsMapResources
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGraphicsUnmapResources
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuGraphicsSubResourceGetMappedArray
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDeviceGetUuid
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuImportExternalMemory
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDestroyExternalMemory
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuExternalMemoryGetMappedBuffer
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuExternalMemoryGetMappedMipmappedArray
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMipmappedArrayGetLevel
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuMipmappedArrayDestroy
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuImportExternalSemaphore
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuDestroyExternalSemaphore
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuSignalExternalSemaphoresAsync
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: cuWaitExternalSemaphoresAsync
[h264_nvenc @ 0x55cd72805bc0] Loaded lib: libnvidia-encode.so.1
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: NvEncodeAPICreateInstance
[h264_nvenc @ 0x55cd72805bc0] Loaded sym: NvEncodeAPIGetMaxSupportedVersion
[h264_nvenc @ 0x55cd72805bc0] Loaded Nvenc version 11.0
[h264_nvenc @ 0x55cd72805bc0] Nvenc initialized successfully
[h264_nvenc @ 0x55cd72805bc0] CQ(4096) mode enabled.
Output #0, mp4, to '/code/data/sample-coded-2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.2.101
  Stream #0:0, 0, 1/12800: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, progressive), 240x240 [SAR 1:1 DAR 1:1], q=2-31, 25 fps, 12800 tbn (default)
    Metadata:
      encoder         : Lavc59.1.100 h264_nvenc
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 4000000 vbv_delay: N/A
  Stream #0:1(und), 0, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 341 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.1.100 aac
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.14 bitrate=   2.6kbits/s speed=2.17x    
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
cur_dts is invalid st:0 (0) [init:1 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
[out_0_0 @ 0x55cd739d98c0] EOF on sink link out_0_0:default.
[out_0_1 @ 0x55cd736126c0] EOF on sink link out_0_1:default.
No more output streams to write to, finishing.
frame=  132 fps=0.0 q=14.0 Lsize=     670kB time=00:00:05.31 bitrate=1033.0kbits/s speed=9.85x    
video:439kB audio:226kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.725292%
Input file #0 (/code/data/sample.mp4):
  Input stream #0:0 (video): 132 packets read (795933 bytes); 132 frames decoded; 
  Input stream #0:1 (audio): 249 packets read (255526 bytes); 249 frames decoded (254976 samples); 
  Total: 381 packets (1051459 bytes) demuxed
Output file #0 (/code/data/sample-coded-2.mp4):
  Output stream #0:0 (video): 132 frames encoded; 132 packets muxed (449780 bytes); 
  Output stream #0:1 (audio): 249 frames encoded (254976 samples); 250 packets muxed (231187 bytes); 
  Total: 382 packets (680967 bytes) muxed
381 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x55cd727fe500] Statistics: 2 seeks, 6 writeouts
[h264_nvenc @ 0x55cd72805bc0] Nvenc unloaded
[aac @ 0x55cd7280db80] Qavg: 1497.885
[AVIOContext @ 0x55cd727dc0c0] Statistics: 1092685 bytes read, 2 seeks

video ffprobe:

ffprobe version N-102632-g575e52272d Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --enable-nonfree --enable-gpl --enable-libnpp --enable-libx264 --enable-libx265 --enable-cuda --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
  libavutil      57.  0.100 / 57.  0.100
  libavcodec     59.  1.100 / 59.  1.100
  libavformat    59.  2.101 / 59.  2.101
  libavdevice    59.  0.100 / 59.  0.100
  libavfilter     8.  0.101 /  8.  0.101
  libswscale      6.  0.100 /  6.  0.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/code/data/sample.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    encoder         : Lavf53.24.2
  Duration: 00:00:05.31, start: 0.000000, bitrate: 1589 kb/s
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1205 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 384 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Attachments (1)

ffmpeg-20210615-171012.log (432.8 KB ) - added by nijikilling 3 years ago.
loglevel=99 another ffmpeg log with same launch command

Download all attachments as: .zip

Change History (2)

by nijikilling, 3 years ago

Attachment: ffmpeg-20210615-171012.log added

loglevel=99 another ffmpeg log with same launch command

comment:1 by Carl Eugen Hoyos, 3 years ago

Keywords: cuda added; cropping cuvid filter_complex filtering nvidia removed
Note: See TracTickets for help on using tickets.