Opened 7 weeks ago

Closed 3 hours ago

#11174 closed task (duplicate)

scale_npp can't parse ref_* like ref_w or ref_h

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

Description

Summary of the bug:
because #10795 scale2ref is deprecated, scale2ref_npp also can't use, I change use scale_npp to replace scale2ref_npp , but scale2ref_npp can't parse any ref_* like ref_w or ref_h
How to reproduce:

 ffmpeg -y -init_hw_device cuda=cuda -filter_hw_device cuda -hwaccel cuvid -i /home/mytseng/nginx_conf/20240903.mp4  -i /home/mytseng/nginx_conf/TWM.png  -filter_complex "[1:v]format=yuva420p,hwupload[o];[v:0]scale_npp=format=yuv420p[m];[o][m]scale_npp=w=rw/5:h=ow/dar[foreg];[m][foreg]overlay_cuda=x=20:y=20"    -c:v h264_nvenc -b:v 5M /home/mytseng/nginx_conf/testfile666.mp4

ffmpeg version N-116752-g507c2a5774 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 12 (Ubuntu 12.2.0-3ubuntu1)
  configuration: --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared --enable-openssl --enable-nvenc --enable-cuvid --enable-cuda --enable-decoder=png --enable-encoder=png --enable-libx264 --enable-libfdk-aac --enable-gpl
  libavutil      59. 34.100 / 59. 34.100
  libavcodec     61. 11.100 / 61. 11.100
  libavformat    61.  5.101 / 61.  5.101
  libavdevice    61.  2.100 / 61.  2.100
  libavfilter    10.  2.102 / 10.  2.102
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'cuda=cuda'.
Reading option '-filter_hw_device' ... matched as option 'filter_hw_device' (set hardware device used when filtering) with argument 'cuda'.
Reading option '-hwaccel' ... matched as option 'hwaccel' (use HW accelerated decoding) with argument 'cuvid'.
Reading option '-i' ... matched as input url with argument '/home/mytseng/nginx_conf/20240903.mp4'.
Reading option '-i' ... matched as input url with argument '/home/mytseng/nginx_conf/TWM.png'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create a complex filtergraph) with argument '[1:v]format=yuva420p,hwupload[o];[v:0]scale_npp=format=yuv420p[m];[o][m]scale_npp=w=rw:h=ow/dar[foreg];[m][foreg]overlay_cuda=x=20:y=20'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'h264_nvenc'.
Reading option '-b:v' ... matched as option 'b' (video bitrate (please use -b:v)) with argument '5M'.
Reading option '/home/mytseng/nginx_conf/testfile666.mp4' ... matched as output url.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option init_hw_device (initialise hardware device) with argument cuda=cuda.
[AVHWDeviceContext @ 0x5633fc616540] Loaded lib: libcuda.so.1
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuInit
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDriverGetVersion
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetCount
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGet
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetAttribute
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetName
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceComputeCapability
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxCreate_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxGetCurrent
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxSetLimit
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxPushCurrent_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxPopCurrent_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxDestroy_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemAlloc_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemAllocPitch_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemAllocManaged
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemsetD8Async
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemFree_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpy
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyAsync
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpy2D_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpy2DAsync_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyHtoD_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyHtoDAsync_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyDtoH_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyDtoHAsync_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyDtoD_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMemcpyDtoDAsync_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGetErrorName
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGetErrorString
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuCtxGetDevice
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDevicePrimaryCtxRetain
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDevicePrimaryCtxRelease
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDevicePrimaryCtxSetFlags
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDevicePrimaryCtxGetState
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDevicePrimaryCtxReset
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamCreate
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamQuery
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamSynchronize
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamDestroy_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamAddCallback
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuStreamWaitEvent
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEventCreate
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEventDestroy_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEventSynchronize
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEventQuery
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEventRecord
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuLaunchKernel
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuLinkCreate
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuLinkAddData
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuLinkComplete
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuLinkDestroy
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuModuleLoadData
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuModuleUnload
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuModuleGetFunction
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuModuleGetGlobal
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuTexObjectCreate
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuTexObjectDestroy
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGLGetDevices_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsGLRegisterImage
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsUnregisterResource
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsMapResources
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsUnmapResources
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsSubResourceGetMappedArray
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuGraphicsResourceGetMappedPointer_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetUuid
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetUuid_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetLuid
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetByPCIBusId
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDeviceGetPCIBusId
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuImportExternalMemory
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDestroyExternalMemory
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuExternalMemoryGetMappedBuffer
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuExternalMemoryGetMappedMipmappedArray
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMipmappedArrayGetLevel
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuMipmappedArrayDestroy
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuImportExternalSemaphore
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuDestroyExternalSemaphore
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuSignalExternalSemaphoresAsync
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuWaitExternalSemaphoresAsync
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuArrayCreate_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuArray3DCreate_v2
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuArrayDestroy
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEGLStreamProducerConnect
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEGLStreamProducerDisconnect
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEGLStreamConsumerDisconnect
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEGLStreamProducerPresentFrame
[AVHWDeviceContext @ 0x5633fc616540] Loaded sym: cuEGLStreamProducerReturnFrame
Applying option filter_hw_device (set hardware device used when filtering) with argument cuda.
Applying option filter_complex (create a complex filtergraph) with argument [1:v]format=yuva420p,hwupload[o];[v:0]scale_npp=format=yuv420p[m];[o][m]scale_npp=w=rw:h=ow/dar[foreg];[m][foreg]overlay_cuda=x=20:y=20.
[AVFilterGraph @ 0x5633fcf31780] Setting 'pix_fmts' to value 'yuva420p'
[AVFilterGraph @ 0x5633fcf31780] Setting 'format' to value 'yuv420p'
[AVFilterGraph @ 0x5633fcf31780] Setting 'w' to value 'rw'
[AVFilterGraph @ 0x5633fcf31780] Setting 'h' to value 'ow/dar'
[AVFilterGraph @ 0x5633fcf31780] Setting 'x' to value '20'
[AVFilterGraph @ 0x5633fcf31780] Setting 'y' to value '20'
[Parsed_scale_npp_3 @ 0x5633fcf34bc0] [Eval @ 0x7ffea76f16f0] Undefined constant or missing '(' in 'rw'
[Parsed_scale_npp_3 @ 0x5633fcf34bc0] Cannot parse expression for width: 'rw'
[AVFilterGraph @ 0x5633fcf31780] Error initializing filters
Failed to set value '[1:v]format=yuva420p,hwupload[o];[v:0]scale_npp=format=yuv420p[m];[o][m]scale_npp=w=rw:h=ow/dar[foreg];[m][foreg]overlay_cuda=x=20:y=20' for option 'filter_complex': Invalid argument
Error parsing global options: Invalid argument


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

Change History (2)

comment:1 by mytait, 9 hours ago

it seems i have the same issue:

https://trac.ffmpeg.org/ticket/11257

comment:2 by MasterQuestionable, 3 hours ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.