{"action":"closed","issue":{"url":"https://api.github.com/repos/cisco/openh264/issues/2095","repository_url":"https://api.github.com/repos/cisco/openh264","labels_url":"https://api.github.com/repos/cisco/openh264/issues/2095/labels{/name}","comments_url":"https://api.github.com/repos/cisco/openh264/issues/2095/comments","events_url":"https://api.github.com/repos/cisco/openh264/issues/2095/events","html_url":"https://github.com/cisco/openh264/issues/2095","id":104210053,"number":2095,"title":"RC fail for the bitstream 720p5994_parkrun_ter.yuv","user":{"login":"QuPengfei","id":14069513,"avatar_url":"https://avatars.githubusercontent.com/u/14069513?v=3","gravatar_id":"","url":"https://api.github.com/users/QuPengfei","html_url":"https://github.com/QuPengfei","followers_url":"https://api.github.com/users/QuPengfei/followers","following_url":"https://api.github.com/users/QuPengfei/following{/other_user}","gists_url":"https://api.github.com/users/QuPengfei/gists{/gist_id}","starred_url":"https://api.github.com/users/QuPengfei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QuPengfei/subscriptions","organizations_url":"https://api.github.com/users/QuPengfei/orgs","repos_url":"https://api.github.com/users/QuPengfei/repos","events_url":"https://api.github.com/users/QuPengfei/events{/privacy}","received_events_url":"https://api.github.com/users/QuPengfei/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"ruil2","id":6100652,"avatar_url":"https://avatars.githubusercontent.com/u/6100652?v=3","gravatar_id":"","url":"https://api.github.com/users/ruil2","html_url":"https://github.com/ruil2","followers_url":"https://api.github.com/users/ruil2/followers","following_url":"https://api.github.com/users/ruil2/following{/other_user}","gists_url":"https://api.github.com/users/ruil2/gists{/gist_id}","starred_url":"https://api.github.com/users/ruil2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruil2/subscriptions","organizations_url":"https://api.github.com/users/ruil2/orgs","repos_url":"https://api.github.com/users/ruil2/repos","events_url":"https://api.github.com/users/ruil2/events{/privacy}","received_events_url":"https://api.github.com/users/ruil2/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-09-01T08:06:19Z","updated_at":"2016-05-31T08:46:12Z","closed_at":"2016-05-31T08:46:11Z","body":"hi,\r\n\r\nI met one issue when encoding the stream 720p5994_parkrun_ter.yuv with bitrate 2000kbps, but actually the output is 6161Kbps. I use the framerate 30fps.\r\n\r\nI noticed it is related to the parameter \"SpatialBitrate\". if I set it as 2000, the RC will failed. If it is 600, the output bitrate is still ~2000kbps.\r\n\r\nBTW, I test on one 1080P stream and did not see the issue.\r\n\r\nis this an issue?\r\n\r\nattach the cfg file:\r\n# Cisco Scalable H.264/AVC Extension Encoder Configuration File\r\n\r\n#============================== GENERAL ==============================\r\nUsageType        0            #0: camera video 1:screen content\r\nSourceWidth      1280          #input video width\r\nSourceHeight     720          #input video height\r\nInputFile       /home/bqu/workspace/stream/YUV_files/720p5994_parkrun_ter.yuv # Input  file\r\nOutputFile              enc.h264               # Bitstream file\r\nMaxFrameRate            30                     # Maximum frame rate [Hz]\r\nFramesToBeEncoded       -1                    # Number of frames (at input frame rate)\r\n\r\nTemporalLayerNum       1                     # temporal layer number(1--4)\r\nIntraPeriod            0                    # Intra Period ( multipler of GoP size or -1)\r\nEnableSpsPpsIDAddition  1\r\n\r\nEnableFrameCropping \t1 \t\t       # enable frame cropping flag\r\nEntropyCodingModeFlag   0                #0:cavlc 1:cabac\r\nMaxNalSize            0            # Unit:Byte, Maximum Nal size\r\n#============================== LOOP FILTER ==============================\r\nLoopFilterDisableIDC       0                   # Loop filter idc (0: on, 1: off,\r\n                                               # 2: on except for slice boundaries,\r\n                                               # 3: two stage. slice boundries on in second stage\r\n                                               # 4: Luma on but Chroma off (w.r.t. idc=0)\r\n                                               # 5: Luma on except on slice boundaries, but Chroma off in enh. layer (w.r.t. idc=2)\r\n                                               # 6: Luma on in two stage. slice boundries on in second stage, but Chroma off (w.r.t. idc=3)\r\nLoopFilterAlphaC0Offset\t0                      # AlphaOffset(-6..+6): valid range\r\nLoopFilterBetaOffset\t0                      # BetaOffset (-6..+6): valid range\r\n#============================== SOFTWARE IMPLEMENTATION ==============================\r\nMultipleThreadIdc\t\t\t    1\t# 0: auto(dynamic imp. internal encoder); 1: multiple threads imp. disabled; > 1: count number of threads;\r\n\r\n#============================== RATE CONTROL ==============================\r\nRCMode\t\t\t        1\t\t\t\t        # 0: quality mode;  1: bitrate mode;                                             # 2: buffer based mode,can't control bitrate; -1: rc off mode;\r\nTargetBitrate\t\t\t2000\t\t\t\t    # Unit: kbps, controled by EnableRC also\r\nMaxOverallBitrate       0                    # Unit: kbps, max bitrate overall, 0 - unspecified\r\nEnableFrameSkip\t\t\t0\t\t#Enable Frame Skip\r\n\r\n#============================== DENOISE CONTROL ==============================\r\nEnableDenoise                   0              # Enable Denoise (1: enable, 0: disable)\r\n\r\n#============================== SCENE CHANGE DETECTION CONTROL =======================\r\nEnableSceneChangeDetection\t\t\t1\t\t\t# Enable Scene Change Detection (1: enable, 0: disable)\r\n\r\n#============================== BACKGROUND DETECTION CONTROL ==============================\r\nEnableBackgroundDetection\t\t 1     # BGD control(1: enable, 0: disable)\r\n\r\n#============================== ADAPTIVE QUANTIZATION CONTROL =======================\r\nEnableAdaptiveQuantization\t\t\t1\t\t\t# Enable Adaptive Quantization (1: enable, 0: disable)\r\n\r\n#============================== LONG TERM REFERENCE CONTROL ==============================\r\nEnableLongTermReference             1              # Enable Long Term Reference (1: enable, 0: disable)\r\nLtrMarkPeriod                       30             # Long Term Reference Marking Period\r\n\r\n#============================== LAYER DEFINITION ==============================\r\nPrefixNALAddingCtrl\t\t0\t\t\t\t\t\t# Control flag of adding prefix unit (0: off, 1: on)\r\n\t\t\t\t\t\t\t\t\t\t\t\t# It shall always be on in SVC contexts (i.e. when there are CGS/MGS/spatial enhancement layers)\r\n\t\t\t\t\t\t\t\t\t\t\t\t# Can be disabled when no inter spatial layer prediction in case of its value as 0\r\nNumLayers              1                      # Number of layers\r\n#//LayerCfg                layer0.cfg\t\t# Layer 0 configuration file\r\n#//LayerCfg                layer1.cfg\t\t# Layer 1 configuration file\r\nLayerCfg                 enc_layer_default.cfg\t\t# Layer 2 configuration file\r\n\r\n\r\nenc_layer_default.cfg\r\n# Layer Configuration File\r\n\r\n\r\n#============================== INPUT / OUTPUT ==============================\r\nFrameWidth     1280                     # Input  frame width\r\nFrameHeight    720                    # Input  frame height\r\nFrameRateOut    30                     # Output frame rate [Hz]\r\nReconFile       rec.yuv          # Reconstructed file\r\n\r\n#============================== CODING ==============================\r\nProfileIdc      66          # value of profile_idc (or 0 for auto detection)\r\n\r\nInitialQP       24\t\t\t# Quantization parameters for base quality layer\r\n#================================ RATE CONTROL ===============================\r\nSpatialBitrate\t\t2000\t\t# Unit: kbps, controled by DisableRC also\r\nMaxSpatialBitrate   0     # Unit: kbps, max bitrate for current layer, 0 - unspecified\r\n#============================== MultiSlice Slice Argument ==============================\r\n# for S/M Slice(s) mode settings\r\nSliceMode\t\t\t0\t\t# 0: sigle slice mode; >0: multiple slices mode, see below;\r\nSliceSize\t\t\t1500\r\nSliceNum\t\t\t1\t\t# multiple slices number specified\r\n\r\nSlicesAssign0\t\t960\t\t# count number of MBs in slice #0\r\nSlicesAssign1\t\t0\t\t# count number of MBs in slice #1\r\nSlicesAssign2\t\t0\t\t# count number of MBs in slice #2\r\nSlicesAssign3\t\t0\t\t# count number of MBs in slice #3 -- seting here is for better testing\r\nSlicesAssign4\t\t0\t\t# count number of MBs in slice #4\r\nSlicesAssign5\t\t0\t\t# count number of MBs in slice #5\r\nSlicesAssign6\t\t0\t\t# count number of MBs in slice #6\r\nSlicesAssign7\t\t0\t\t# count number of MBs in slice #7\r\n\r\n### DESIGN OF SLICE MODE ####\r\n# 0 SM_SINGLE_SLICE\t\t\t| SliceNum==1\r\n# 1 SM_FIXEDSLCNUM_SLICE\t| according to SliceNum\t\t\t| Enabled dynamic slicing for multi-thread\r\n# 2 SM_RASTER_SLICE\t\t\t| according to SlicesAssign\t\t| Need input of MB numbers each slice. In addition, if other constraint in slice_argument is presented, need to follow the constraints. Typically if MB num and slice size are both constrained, re-encoding may be involved.\r\n# 3 SM_ROWMB_SLICE\t\t\t| according to PictureMBHeight\t| Typical of single row of mbs each slice?+ slice size constraint which including re-encoding\r\n# 4 SM_DYN_SLICE\t\t\t| according to SliceSize\t\t| Dynamic slicing (have no idea about slice_nums until encoding current frame)\r\n# 5 SM_AUTO_SLICE\t\t\t| according to thread number\t| the number of slices is decided by the number of threads,SliceNum is ignored\r\n\r\n"}}
{"actor":{"display_login":"ruil2"}}