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
516 stars 172 forks source link

gstreamer SVT reports error on VBV mode #541

Closed fujin678 closed 4 years ago

fujin678 commented 4 years ago
gst-launch-1.0 filesrc location=/tmp/teacher.mp4 ! decodebin ! videoscale ! video/x-raw, width=2304, height=1280 ! svthevcenc bitrate=5000 rc=1 lookahead=0 vbv-max-rate=10000  vbv-buffer-size=2147483647  ! filesink location=/tmp/svt.h265
SVT [version]:  SVT-HEVC Encoder Lib v1.4.3
SVT [build]  :  GCC 7.5.0    64 bit
LIB Build date: Apr 29 2020 11:01:12
-------------------------------------------
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Number of logical cores available: 40
Number of PPCS 55
------------------------------------------- 
SVT [config]: Main Profile  Tier (auto) Level (auto)    
SVT [config]: EncoderMode / Tune                            : 7 / 1 
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat         : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo              : 2304 / 1280 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType         : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure          : 3 / 0 / 2 
SVT [config]: RCMode / TargetBitrate / LAD / SceneChange / QP Range [10 ~ 48]       : VBR / 5120000 / 0 / 1 
SVT [config]: BitRateReduction / ImproveSharpness                   : 1 / 1 
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV        : 1 / 1 / 0 / 1
SVT [config]: De-blocking Filter / SAO Filter                       : 1 / 1 
SVT [config]: HME / UseDefaultHME                           : 1 / 1 
SVT [config]: MV Search Area Width / Height                         : 16 / 7 
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit                 : 0 / 10000 / 2147483647 / 0
------------------------------------------- 
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
EB_ErrorMax **********
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
qtdemux.c(6073): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
streaming stopped, reason error (-5)
Execution ended after 0:00:06.180139616
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
tianjunwork commented 4 years ago

Hi @fujin678 , below command line runs well with SVT-HEVC master. And I also tried same command line with SvtHevcEncApp. Could you try with videotestsrc to isolate the issue?

(master) $ gst-launch-1.0 videotestsrc num-buffers=200 ! video/x-raw, framerate=25/1, width=2304, height=1280 ! svthevcenc bitrate=5000 rc=1 lookahead=0 vbv-max-rate=10000  vbv-buffer-size=2147483647  ! filesink location=svt.h265
SVT [version]:  SVT-HEVC Encoder Lib v1.4.3
SVT [build]  :  GCC 8.1.0        64 bit
LIB Build date: Jun  5 2020 13:12:33
-------------------------------------------
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Number of logical cores available: 72
Number of PPCS 55
-------------------------------------------
SVT [config]: Main Profile      Tier (auto)     Level (auto)
SVT [config]: EncoderMode / Tune                                                        : 7 / 1
SVT [config]: EncoderBitDepth / CompressedTenBitFormat / EncoderColorFormat             : 8 / 0 / 1
SVT [config]: SourceWidth / SourceHeight / InterlacedVideo                              : 2304 / 1280 / 0
SVT [config]: Fps_Numerator / Fps_Denominator / Gop Size / IntraRefreshType             : 25 / 1 / 24 / -1
SVT [config]: HierarchicalLevels / BaseLayerSwitchMode / PredStructure                  : 3 / 0 / 2
SVT [config]: RCMode / TargetBitrate / LAD / SceneChange / QP Range [10 ~ 48]           : VBR / 5120000 / 0 / 1
SVT [config]: BitRateReduction / ImproveSharpness                                       : 1 / 1
SVT [config]: tileColumnCount / tileRowCount / tileSliceMode / Constraint MV            : 1 / 1 / 0 / 1
SVT [config]: De-blocking Filter / SAO Filter                                           : 1 / 1
SVT [config]: HME / UseDefaultHME                                                       : 1 / 1
SVT [config]: MV Search Area Width / Height                                             : 16 / 7
SVT [config]: HRD / VBV MaxRate / BufSize / BufInit                                     : 0 / 10000 / 2147483647 / 0
-------------------------------------------
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:02.196059216
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
fujin678 commented 4 years ago

Hi Jun, yes, your above cmd works. Looks like the hang was related to filesrc

THanks, Jeffrey

tianjunwork commented 4 years ago

No problem:) Thanks for confirming.