[FFmpeg-user] [Parsed_overlay_opencl_5 @ 0x4f22e80] Failed to finish command queue:

Mark Thompson sw at jkqxz.net
Tue Jan 9 15:02:43 EET 2018


On 09/01/18 06:01, 郭浩 wrote:
> i want to use overlay_opencl, and i build the ffmpeg with opencl success! but i run the command , it alway report "[Parsed_overlay_opencl_5 @ 0x4f22e80] Failed to finish command queue:",i am not sure my command is correct , can someone tell me how this should be corrected? Thanks
> 
> 
> this is my cmd:
> cmd:
> -----------------
> ./ffmpeg -init_hw_device opencl=cl:0.0 -filter_hw_device cl -i "udp://230.0.0.100:53007?overrun_nonfatal=1" -filter_complex "color=c=black at 1:s=1280x720,hwupload[bg];[0:v]setpts=PTS-STARTPTS,scale=w=426:h=240,hwupload[v0];[bg][v0]overlay_opencl=x=0:y=0 ,hwdownload " -c:v hevc_nvenc -b:v 4M -r 25 -g 25 -f mpegts "udp://230.0.0.240:53001?pkt_size=1316&localaddr=192.168.172.115&overrun_nonfatal=1&fifo_size=286720&ttl=64&bitrate=4096000"
> -----------------

Does it work if you remove all of the other external stuff (replace the udp with normal files and nvenc with a software encoder)?

I don't have that other stuff available for testing, but the following command without them does work for me (using Beignet):

./ffmpeg_g -init_hw_device opencl=cl:0.0 -filter_hw_device cl -i input_1080p.mp4 -filter_complex "color=c=black at 1:s=1280x720,hwupload[bg];[0:v]setpts=PTS-STARTPTS,scale=w=426:h=240,hwupload[v0];[bg][v0]overlay_opencl=x=0:y=0 ,hwdownload " -c:v libx264 -b:v 4M -r 25 -g 25 -f mpegts out.ts

A few other thoughts:
* overlay_opencl in isolation isn't necessarily faster or even using less CPU than normal overlay when you take into account the extra upload/download steps needed (it's more intended for cases when you have interop and can keep things on the GPU).
* Format selection is kindof tricky, because the negotiation can't see through properly to the underlying hardware formats.  You could try adding "format=yuv420p" (or another choice, maybe nv12) before the hwupload instances, though I'm not sure why your setup would give a different answer to mine there.
* A log with "-v debug" will have a bit more information about the OpenCL device and setup - please post that if you still can't get it to work.

- Mark

> report:
> ---------------
> --enable-doc --enable-postproc --enable-bzlib --enable-zlib --enable-parsers --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfdk-aac --enable-libspeex --enable-pthreads --extra-libs=-lpthread --enable-decoders --enable-encoders --enable-avfilter --enable-muxers --enable-demuxers --enable-nvenc --enable-cuvid --enable-cuda --enable-libnpp --enable-opencl --enable-decoders
>   libavutil      56.  7.100 / 56.  7.100
>   libavcodec     58.  9.100 / 58.  9.100
>   libavformat    58.  3.100 / 58.  3.100
>   libavdevice    58.  0.100 / 58.  0.100
>   libavfilter     7. 11.101 /  7. 11.101
>   libswscale      5.  0.101 /  5.  0.101
>   libswresample   3.  0.101 /  3.  0.101
>   libpostproc    55.  0.100 / 55.  0.100
> Input #0, mpegts, from 'udp://230.0.0.100:53007?overrun_nonfatal=1':
>   Duration: N/A, start: 2197.197333, bitrate: N/A
>   Program 1 
>     Metadata:
>       service_name    : ffmpeg
>       service_provider: ffmpeg
>     Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 428x240 [SAR 320:321 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
>     Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 58 kb/s
> Stream mapping:
>   Stream #0:0 (h264) -> setpts (graph 0)
>   hwdownload (graph 0) -> Stream #0:0 (hevc_nvenc)
>   Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
> Press [q] to stop, [?] for help
> [Parsed_overlay_opencl_5 @ 0x4f22e80] Failed to finish command queue: -36.
> Error while filtering: Input/output error
> Failed to inject frame into filter network: Input/output error
> Error while processing the decoded data for stream #0:0
> Conversion failed!
> --------------


More information about the ffmpeg-user mailing list