Hi Yar1k,
I tried to run 4 transcodings:
ubuntu@tegra-ubuntu:~$ gst-launch-1.0 filesrc location=some_es.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a.h265 & gst-launch-1.0 filesrc location=some_es1.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a1.h265 & gst-launch-1.0 filesrc location=some_es2.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a2.h265 & gst-launch-1.0 filesrc location=some_es3.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a3.h265
[1] 5218
[2] 5219
[3] 5220
Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitInside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
Pipeline is PREROLLING ...
Pipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 261
NvMMLiteBlockCreate : Block : BlockType = 261
TVMR: cbBeginSequence: 1166: BeginSequence 1920x1088, bVPR = 0, fFrameRate = 25.000000
TVMR: LowCorner Frequency = 180000
TVMR: cbBeginSequence: 1545: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingNvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen
TVMR: cbBeginSequence: 1606: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 1649: ColorFormat : 5
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
Pipeline is PREROLLING ...
TVMR: cbBeginSequence: 1166: BeginSequence 1920x1088, bVPR = 0, fFrameRate = 25.000000
TVMR: LowCorner Frequency = 180000
TVMR: cbBeginSequence: 1545: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0
NvMMLiteBlockCreate : Block : BlockType = 261
TVMR: cbBeginSequence: 1761: Layout 3: Interlaced Output Resolution : (1920x1088)
TVMR: InterlaceBufferAlloc !!!!!!!!!!!!!!!!!!!!!
TVMR: TVMRInit: 100: frameWidth = 1920, frameHeight = 1088
TVMR: cbBeginSequence: 1606: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 1649: ColorFormat : 5
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
TVMR: cbBeginSequence: 1761: Layout 3: Interlaced Output Resolution : (1920x1088)
TVMR: InterlaceBufferAlloc !!!!!!!!!!!!!!!!!!!!!
TVMR: TVMRInit: 100: frameWidth = 1920, frameHeight = 1088
TVMR: TVMRInit: 114: deinterlaceType = 2
TVMR: DeinterlaceThread: 827: DeinterlaceThread is created
TVMR: cbBeginSequence: 1166: BeginSequence 1920x1088, bVPR = 0, fFrameRate = 25.000000
TVMR: LowCorner Frequency = 180000
TVMR: cbBeginSequence: 1545: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 4, InteraceStream = 1, InterlaceEnabled = 1, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1920x1088 (x 6), ThumbnailMode = 0
TVMR: TVMRInit: 114: deinterlaceType = 2
TVMR: DeinterlaceThread: 827: DeinterlaceThread is created
TVMR: cbBeginSequence: 1606: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 1649: ColorFormat : 5
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 4, InteraceStream = 1, InterlaceEnabled = 1, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1920x1088 (x 6), ThumbnailMode = 0
TVMR: cbBeginSequence: 1761: Layout 3: Interlaced Output Resolution : (1920x1088)
TVMR: InterlaceBufferAlloc !!!!!!!!!!!!!!!!!!!!!
TVMR: TVMRInit: 100: frameWidth = 1920, frameHeight = 1088
TVMR: TVMRInit: 114: deinterlaceType = 2
TVMR: DeinterlaceThread: 827: DeinterlaceThread is created
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 4, InteraceStream = 1, InterlaceEnabled = 1, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1920x1088 (x 6), ThumbnailMode = 0
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 261
Framerate set to : 25 at NvxVideoEncoderSetParameterTVMR: cbBeginSequence: 1166: BeginSequence 1920x1088, bVPR = 0, fFrameRate = 25.000000
TVMR: LowCorner Frequency = 180000
TVMR: cbBeginSequence: 1545: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0
NvMMLiteOpen : Block : BlockType = 8
Framerate set to : 25 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
TVMR: cbBeginSequence: 1606: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 1649: ColorFormat : 5
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
TVMR: cbBeginSequence: 1761: Layout 3: Interlaced Output Resolution : (1920x1088)
TVMR: InterlaceBufferAlloc !!!!!!!!!!!!!!!!!!!!!
TVMR: TVMRInit: 100: frameWidth = 1920, frameHeight = 1088
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
TVMR: TVMRInit: 114: deinterlaceType = 2
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 4, InteraceStream = 1, InterlaceEnabled = 1, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1920x1088 (x 6), ThumbnailMode = 0
TVMR: DeinterlaceThread: 827: DeinterlaceThread is created
Framerate set to : 25 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
Framerate set to : 25 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
lv 20, tier 1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
lv 20, tier 1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
lv 20, tier 1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
lv 20, tier 1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
TVMR: FrameRate = 150.001500
TVMR: FrameRate = 150.001500
TVMR: FrameRate = 150.001500
TVMR: FrameRate = 150.001500
TVMR: FrameRate = -428.577551
TVMR: FrameRate = -428.577551
TVMR: FrameRate = -428.577551
TVMR: FrameRate = -428.577551
TVMR: FrameRate = 750.018750
TVMR: FrameRate = 750.018750
TVMR: FrameRate = 25
TVMR: NVDEC LowCorner Freq = (150000 * 1024)
TVMR: FrameRate = 750.018750
TVMR: FrameRate = 25
TVMR: NVDEC LowCorner Freq = (150000 * 1024)
TVMR: FrameRate = 750.018750
TVMR: FrameRate = 250.000000
TVMR: FrameRate = 25
TVMR: NVDEC LowCorner Freq = (150000 * 1024)
TVMR: FrameRate = 25
TVMR: NVDEC LowCorner Freq = (150000 * 1024)
TVMR: FrameRate = 250.000000
TVMR: FrameRate = 250.000000
TVMR: FrameRate = 250.000000
TVMR: FrameRate = 375.009375
TVMR: FrameRate = 375.009375
TVMR: FrameRate = 375.009375
TVMR: FrameRate = 375.009375
TVMR: FrameRate = 300.003000
TVMR: FrameRate = 300.003000
TVMR: FrameRate = 300.003000
TVMR: FrameRate = 300.003000
TVMR: FrameRate = -200.000000
TVMR: FrameRate = -200.000000
TVMR: FrameRate = -200.000000
TVMR: FrameRate = -200.000000
TVMR: FrameRate = 130.435917
TVMR: NvMMLiteTVMRDecDoWork: 6466: NVMMLITE_TVMR: EOS detected
TVMR: TVMRBufferProcessing: 5444: Processing of EOS
TVMR: TVMRBufferProcessing: 5519: Processing of EOS Done
Got EOS from element "pipeline0".
Execution ended after 0:00:27.650336088
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: DeinterlaceThread: 903: Closing Deinterlace Thread
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done
Setting pipeline to NULL ...
Freeing pipeline ...
ubuntu@tegra-ubuntu:~$
ubuntu@tegra-ubuntu:~$
ubuntu@tegra-ubuntu:~$ TVMR: FrameRate = 130.435917
TVMR: NvMMLiteTVMRDecDoWork: 6466: NVMMLITE_TVMR: EOS detected
TVMR: TVMRBufferProcessing: 5444: Processing of EOS
TVMR: TVMRBufferProcessing: 5519: Processing of EOS Done
Got EOS from element "pipeline0".
Execution ended after 0:00:28.575044439
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: DeinterlaceThread: 903: Closing Deinterlace Thread
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done
Setting pipeline to NULL ...
Freeing pipeline ...
TVMR: NvMMLiteTVMRDecDoWork: 6466: NVMMLITE_TVMR: EOS detected
TVMR: FrameRate = 130.435917
TVMR: TVMRBufferProcessing: 5444: Processing of EOS
TVMR: TVMRBufferProcessing: 5519: Processing of EOS Done
Got EOS from element "pipeline0".
Execution ended after 0:00:28.823468480
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: DeinterlaceThread: 903: Closing Deinterlace Thread
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done
Setting pipeline to NULL ...
Freeing pipeline ...
TVMR: NvMMLiteTVMRDecDoWork: 6466: NVMMLITE_TVMR: EOS detected
TVMR: FrameRate = 130.435917
TVMR: TVMRBufferProcessing: 5444: Processing of EOS
TVMR: TVMRBufferProcessing: 5519: Processing of EOS Done
Got EOS from element "pipeline0".
Execution ended after 0:00:29.008143820
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: DeinterlaceThread: 903: Closing Deinterlace Thread
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done
Setting pipeline to NULL ...
Freeing pipeline ...
[1] Done gst-launch-1.0 filesrc location=some_es.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a.h265
[2]- Done gst-launch-1.0 filesrc location=some_es1.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a1.h265
[3]+ Done gst-launch-1.0 filesrc location=some_es2.h264 ! h264parse ! omxh264dec ! nvvidconv ! omxh265enc ! 'video/x-h265,stream-format=(string)byte-stream' ! filesink location=a2.h265
ubuntu@tegra-ubuntu:~$
some_es.h264 is a 32-second content, so the performance seems good enough:
Execution ended after 0:00:27.650336088
Execution ended after 0:00:28.575044439
Execution ended after 0:00:28.823468480
Execution ended after 0:00:29.008143820
I think the error you see is probably because of the network bandwidth. I check some_es.h264 via JM decoder:
00040( I | P ) 81 471 18 4:2:0 42
00038( B | B ) 77 472 22 4:2:0 48
00037( B | B ) 75 473 22 4:2:0 50
00039( B | B ) 79 474 22 4:2:0 60
00044( P | P ) 89 475 18 4:2:0 49
00042( B | B ) 85 476 22 4:2:0 44
00041( B | B ) 83 477 22 4:2:0 47
00043( B | B ) 87 478 22 4:2:0 47
00048( P | P ) 97 479 18 4:2:0 54
There are three B frames between I and P / P and P frames. If one of the I/P frame is incomplete and not decoded successfully, the three B frames cannot be decoded as well. Since 4 transcodings with filesrc work fine, the issue should be from the udpsrc. Possibly the network bandwidth is limited and some packets are dropped.