Re: [FFmpeg-user] ffmpeg hwmap SW decoded frame to OpenCL and hwmap back to h264 for SW encode

2019-11-05 Thread Ted Park
>  But got error: "Segmentation fault: 11", so may be I'm doing something wrong?

Yeah a segfault should make you take a step back and look at what your doing 
for sure.

> I trying speed up process and avoid copy frames between GPU and CPU.

Probably the only way to do this is to get rid of all the hw acceleration in 
your command, it’s gotta be converted at some point right?
Actually is “HD Graphics 4000” an intel or ati card, is it just me that feels 
like it could be either

But anyhow, 

> ./ffmpeg -i ../720.mp4 ...

That isn't going to decode in hardware. And idk without trace, but I’m guessing 
the kernel did not like it at all when you rw mapped the decoded frames and 
something else (seemingly out of the blue random for all it knows) started 
messing with it, and it said no you can’t do that. Even if it is integrated 
graphics and shares main memory, I’d think the filter would be a separate 
process and it’d be considered “not safe"

> Matched encoder 'libx264' for codec 'h264'.
> [file @ 0x7fbb1ec44680] Setting default whitelist 'file,crypto'
> Successfully opened the file.
> detected 8 logical cores
> [h264 @ 0x7fbb1f9a9800] nal_unit_type: 7(SPS), nal_ref_idc: 1
> [h264 @ 0x7fbb1f9a9800] nal_unit_type: 8(PPS), nal_ref_idc: 1
> Stream mapping:
>   Stream #0:0 (h264) -> hwmap
>   hwmap -> Stream #0:0 (libx264)

…

> [graph 0 input from stream 0:0 @ 0x7fbb1ee09040] w:1280 h:720 pixfmt:yuv420p 
> tb:1/3 fr:3/1001 sar:1/1 sws_param:flags=2
> [format @ 0x7fbb1ed0a080] Setting 'pix_fmts' to value 
> 'yuv420p|yuvj420p|yuv422p|yuvj422p|yuv444p|yuvj444p|nv12|nv16|nv21|yuv420p10le|yuv422p10le|yuv444p10le|nv20le'
> [AVFilterGraph @ 0x7fbb21004240] query_formats: 7 queried, 6 merged, 0 
> already done, 0 delayed
> [Parsed_hwmap_2 @ 0x7fbb1ed03e00] picking yuv420p out of 13 ref:opencl alpha:1
> [Parsed_hwmap_0 @ 0x7fbb1ed09940] Configure hwmap yuv420p -> opencl.
> [Parsed_hwmap_2 @ 0x7fbb1ed03e00] Configure hwmap opencl -> yuv420p.


And in the end x264 does the encode so I feel like it would actually be faster 
without OpenCL? Or if that’s an Intel integrated gpu is quick sync an option? I 
am curious because I don’t know how to build ffmpeg with OpenCL, I’ve tried, 
but on the newer versions of macOS, it’s getting harder to use gpus for compute 
other than with cocoa avfoundation or “metal"

___
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

[FFmpeg-user] ffmpeg hwmap SW decoded frame to OpenCL and hwmap back to h264 for SW encode

2019-11-04 Thread Alex
I trying speed up process and avoid copy frames between GPU and CPU. But got 
error: "Segmentation fault: 11", so may be I'm doing something wrong?

My full ffmpeg command and log here:

./ffmpeg -i ../720.mp4 -init_hw_device opencl=ocl:0.1 -filter_hw_device ocl  
-filter_complex "hwmap,avgblur_opencl=30,hwmap"  -c:v h264 -an -t 10 -y 
../out_blur.mp4 -loglevel debug
ffmpeg version N-95621-g53c21c2d6b Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.10.44.4)
  configuration: --enable-fontconfig --enable-gpl --enable-libaom 
--enable-libass --enable-libbluray --enable-libfreetype --enable-libtheora 
--enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 
--disable-ffplay --enable-nonfree --enable-opencl
  libavutil      56. 35.101 / 56. 35.101
  libavcodec     58. 60.100 / 58. 60.100
  libavformat    58. 33.100 / 58. 33.100
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 66.100 /  7. 66.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument '../720.mp4'.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' 
(initialise hardware device) with argument 'opencl=ocl:0.1'.
Reading option '-filter_hw_device' ... matched as option 'filter_hw_device' 
(set hardware device used when filtering) with argument 'ocl'.
Reading option '-filter_complex' ... matched as option 'filter_complex' (create 
a complex filtergraph) with argument 
'hwmap,unsharp_opencl=lx=17:ly=17:la=5,hwmap'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 
'h264'.
Reading option '-an' ... matched as option 'an' (disable audio) with argument 
'1'.
Reading option '-t' ... matched as option 't' (record or transcode "duration" 
seconds of audio/video) with argument '10'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with 
argument '1'.
Reading option '../out_blur.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 init_hw_device (initialise hardware device) with argument 
opencl=ocl:0.1.
[AVHWDeviceContext @ 0x7fbb1ec08480] 1 OpenCL platforms found.
[AVHWDeviceContext @ 0x7fbb1ec08480] 3 OpenCL devices found on platform "Apple".
[AVHWDeviceContext @ 0x7fbb1ec08480] 0.1: Apple / HD Graphics 4000
Applying option filter_hw_device (set hardware device used when filtering) with 
argument ocl.
Applying option filter_complex (create a complex filtergraph) with argument 
hwmap,unsharp_opencl=lx=17:ly=17:la=5,hwmap.
Applying option y (overwrite output files) with argument 1.
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url ../720.mp4.
Successfully parsed a group of options.
Opening an input file: ../720.mp4.
[NULL @ 0x7fbb1f818c00] Opening '../720.mp4' for reading
[file @ 0x7fbb1ec3d600] Setting default whitelist 'file,crypto'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] Format mov,mp4,m4a,3gp,3g2,mj2 
probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] ISO: File Type Major Brand: isom
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] Unknown dref type 0x206c7275 size 12
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] Processing st: 0, edit list 0 - 
media time: 0, duration: 300300
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] Before avformat_find_stream_info() 
pos: 4123312 bytes read:34929 seeks:1 nb_streams:1
[h264 @ 0x7fbb1f9ae800] nal_unit_type: 7(SPS), nal_ref_idc: 1
[h264 @ 0x7fbb1f9ae800] nal_unit_type: 8(PPS), nal_ref_idc: 1
[h264 @ 0x7fbb1f9ae800] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 0x7fbb1f9ae800] nal_unit_type: 5(IDR), nal_ref_idc: 1
[h264 @ 0x7fbb1f9ae800] Format yuv420p chosen by get_format().
[h264 @ 0x7fbb1f9ae800] Reinit context to 1280x720, pix_fmt: yuv420p
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] All info found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fbb1f818c00] After avformat_find_stream_info() 
pos: 38244 bytes read:73125 seeks:2 frames:1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../720.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.33.100
  Duration: 00:00:10.01, start: 0.00, bitrate: 3295 kb/s
    Stream #0:0(und), 1, 1/3: Video: h264 (High), 1 reference frame (avc1 / 
0x31637661), yuv420p(left), 1280x720 [SAR 1:1 DAR 16:9], 0/1, 3293 kb/s, 29.97 
fps, 29.97 tbr, 30k tbn, 60k tbc (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc. Created on: 
10/24/2018.
Successfully opened the file.
[Parsed_unsharp_opencl_1 @ 0x7fbb1ec45640] Setting 'lx' to value '17'
[Parsed_unsharp_opencl_1 @ 0x7fbb1ec45640] Setting 'ly' to value '17'