[FFmpeg-trac] #9291(undetermined:new): exact=1 crop filter for nv12-format video seems to swap color components (when specifying odd crop coordinates)

FFmpeg trac at avcodec.org
Tue Jun 15 20:04:46 EEST 2021


#9291: exact=1 crop filter for nv12-format video seems to swap color components
(when specifying odd crop coordinates)
-------------------------------------+-------------------------------------
             Reporter:  nijikilling  |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:  cropping     |               Blocked By:
  cuvid filter_complex filtering     |
  nvidia                             |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 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.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9291>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list