OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
519 stars 169 forks source link

Process is suspended #458

Closed Holly0521 closed 4 years ago

Holly0521 commented 4 years ago

The process is suspended or core dump when running this commond of _ffmpeg -i copy-cut.mp4 -c:v libsvt_hevc -preset 11 -profile:v 2 -level:v 51 -b:v 36000000 -rc 1 -maxrate 45000000 -bufsize 36000000 -tier high -g 100 -sc_detection 0 -hdr 1 -pixfmt yuv420p10le -an ./10015.ts If the parameter of maxrate equals the parameter of bufsize or it does not set the two parameters, the process normally executing. And the corresponding commands are as follows. _ffmpeg -i copy-cut.mp4 -c:v libsvt_hevc -preset 11 -profile:v 2 -level:v 51 -b:v 36000000 -rc 1 -maxrate 36000000 -bufsize 36000000 -tier high -g 100 -sc_detection 0 -hdr 1 -pixfmt yuv420p10le -an ./10015.ts _ffmpeg -i copy-cut.mp4 -c:v libsvt_hevc -preset 11 -profile:v 2 -level:v 51 -b:v 36000000 -rc 1 -bufsize 36000000 -tier high -g 100 -sc_detection 0 -hdr 1 -pixfmt yuv420p10le -an ./10015.ts

If the input video is needed, I can upload to a website. Thanks for your reply.

intelmark commented 4 years ago

These bitrates seem on the high side. What is frame size of the copy-cut.mp4 video?

tianjunwork commented 4 years ago

Hi @Holly0521, I tried with a mp4(1280x720, -preset 9) with your first command, it works well. To avoid uploading the large mp4 file, we can try with our file first, please run ffprobe copy-cut.mp4 and copy the output here. Thank you.

Holly0521 commented 4 years ago

Hi @tianjunwork, these are messages after running ffrpobe copy-cut.mp4. Thx a lot. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'copy-cut.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.20.100 Duration: 00:02:10.05, start: 0.000000, bitrate: 50031 kb/s Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR 16:9], 49771 kb/s, 50 fps, 50 tbr, 90k tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: handler_name : SoundHandler

tianjunwork commented 4 years ago

Thanks @Holly0521 , I tried with a ffmpeg generated test file with the same spec, but still failed to reproduce process hang. Could you upload the file? dropbox, onedrive or google drive is preferable. Thank you.

Holly0521 commented 4 years ago

Hi @tianjunwork, thanks for your reply. I have uploaded the source video through onedrive. And the link is https://1drv.ms/v/s!Ake4PSC3nB0Jav70ZjwE5ZoS7uM?e=dUCCWW. Thx a lot.

tianjunwork commented 4 years ago

Hi @Holly0521 , the file is downloaded. Thanks for the effort uploading it. I got seg fault running your first command. No issue with the second. We will look into it. Thank you reporting the issue.

Holly0521 commented 4 years ago

Hi @tianjunwork , no thanks. Yes, the second and three commonds are normally executed.

Austin-Hu commented 4 years ago

Hi @Holly0521 ,

We confirmed that PR #457 can address this issue, and please try in your side. Thanks!

ffmpeg would randomly get NULL data (header_ptr->pBuffer) dequeued from the output bit stream FIFO of SVT-HEVC encoder, because it's posted by libSvtEncoderSendErrorExit with error code EB_ENC_EC_ERROR2 (0x701), due to that the output bit stream buffers are too small (when the specified bit rate > buffer size).

Holly0521 commented 4 years ago

Thanks @tianjunwork , the problems above has now been sorted. But the process is suspended when running this commond of ./ffmpeg -stream_loop -1 -i input.ts -c:v libw265 -preset 11 -profile:v 2 -level:v 62 -tier high -sc_detection 0 -g 100 -pix_fmt yuv420p10le -b:v 30000k -rc 1 -r 50 -s 3840x2160 -c:a aac -f mpegts 4K-HLG.ts -c:v libw265 -preset 9 -profile:v 1 -level:v 62 -tier main -pix_fmt yuv420p -b:v 1000k -rc 1 -s 1280x720 -c:a aac -f mpegts 720P-SDR.ts And process execution time is not fixed when the process is suspended. I'm looking forward to your reply.

CPU Informations Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 64 On-line CPU(s) list: 0-63 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel(R) Xeon(R) Gold 6266C CPU @ 3.00GHz Stepping: 7 CPU MHz: 3000.000 BogoMIPS: 6000.00 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 30976K NUMA node0 CPU(s): 0-31 NUMA node1 CPU(s): 32-63 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities Operating systems CentOS Linux release 7.5.1804 Engine libsvt_hevc (master, commits on Feb 8, 2020) + ffmpeg 4.2