This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/TMS320DM8168:使用 gstreamer 在1080p 显示屏上播放隔行视频

Guru**** 2018450 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592897/linux-tms320dm8168-playing-interlaced-video-on-1080p-display-using-gstreamer

器件型号:TMS320DM8168

工具/软件:Linux

您好!

我想使用 gstreamer 在1080p 显示屏上播放隔行视频。 视频播放正常、但视频被拼接在显示屏上。 以下管道与日志一起使用:

root@dm816x-evm:~# gst-launch -v filesrc location=/usr/share/ti/data/videos/Viet_HTV-mpts_h264_mp3.ts typefind=true! mpegtsdemux name=Demux Demux.video_0254! 排队! h264parse access-unit=true! OMX_H2
64年12月! OMX_标量器! 'VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080/'! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 很棒! OMX_videosink 同步=真
正在将管道设置为暂停...
/GstPipeline0/GstFileSrc:filesrc0.GstPad:src:cap = video/mpegts、systemstream=(布尔值) true、packetsize=(int)188
管道是 PREROLLING ...
/GstPipeline0/GstMpegTSDemux:Demux.GstPad:SINK:Cink:cap = VIDEO/mpegts、systemstream=(布尔值) true、packetsize=(int)188
/GstPipeline:Pipine0/GstMpegTSDemux:Demux:Pat-info =((GValueArray*) 0x196110)
/GstPipeline:fipine0/GstMpegTSDemux:Demux:PMT-INFO =((MpegTsPmtInfo*) 0x1c0200)
/GstPipeline:fipine0/GstQueue0.GstPad:sink:cap = video/x-h264、stream-format=(string) byte-stream、alignmention=(string) nal
/GstPipeline:fipine0/GstQueue0.GstPad:src:cap = video/x-h264、stream-format=(string) byte-stream、alignmention=(string) nal
/GstPipeline0/GstH264Parse:h264parse0.GstPad:sink:cap = video/x-h264、stream-format=(string) byte-stream、alignmention=(string) nal
/GstPipeline0/GstH264Parse:h264parse0.GstPad:src:cap = video/x-h264、stream-format=(string) byte-stream、alignment=(string) au、width=(int) 720、height=(int) 576
/GstPipeline0/GstOmxH264Dec:omxh264dec0.GstPad:灌电流:电容=视频/x-h264、流格式=(字符串)字节流、对齐=(字符串) au、宽度=(int) 720、高度=(int) 576
/GstPipeline0/GstOmxH264Dec:omxh264dec0.GstPad:灌电流:电容=视频/x-h264、流格式=(字符串)字节流、对齐=(字符串) au、宽度=(int) 720、高度=(int) 576
/GstPipeline:流水线0/GstOmxH264Dec:omxh264dec0.GstPad:src:cap = video/x-raw YUV 条纹、width=(int) 720、height=(int) 576、format=(fourcc) NV12、rowstrob=(int) 896、 interlband=(布尔值) false,framerate=(分数) 0/1
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
OMX_EventError:0x8000100b
流损坏错误,可忽略...
/GstPipeline:流水线0/GstOmxH264Dec:omxh264dec0.GstPad:src:cap = video/x-raw YUV 条纹、width=(int) 720、height=(int) 576、format=(fourcc) NV12、rowstrob=(int) 896、 interlband=(布尔值) true、framerate=(分数) 0/1

(GST-LAUNCH-0.10:1436):Gstreamer-critical **:_gst_util_uint64_scale_int:断言`deNom >0'失败
/GstPipeline0/GstOmxScaler:omxscaler0.GstPad:SINK:SINK = VIDEO/x-RAWE-YUV 条纹、width=(int) 720、height=(int) 576、format=(fourcc) NV12、rowstroad=(int) 896、 interlband=(布尔值) true、framerate=(分数) 0/1
/GstPipeline0/GstOmxScaler:omxscaler0.GstPad:SINK:SINK = VIDEO/x-RAWE-YUV 条纹、width=(int) 720、height=(int) 576、format=(fourcc) NV12、rowstroad=(int) 896、 interlband=(布尔值) true、framerate=(分数) 0/1
/GstPipeline0/GstOmxScaler:omxscaler0.GstPad:src:cap = VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080、format=(ycc) fourY2、framerate=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline:流水线0/GstCapsFilter:capsfilter0.GstPad:src:cap = VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080、format=(ycc) fourY2、frames=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline:流水线0/GstCapsFilter:capsfilter0.GstPad:SINK:CAPs = VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080、format=(ycc) fourY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:src:cap = video/x-raine-YUV、width=(int) 1920、height=(int) 1080、format=(fourcc) YY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:灌电流:电容= VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080、format=(fourcc) YY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline0/Gstperf:perf0.GstPad:src:cap = video/x-rayUV、width=(int) 1920、height=(int) 1080、format=(fourcc) YUY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline0/Gstperf:perf0.GstPad:SINK:Cap = VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080、format=(fourcc) YUY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
/GstPipeline0/GstOmxVideoSlink:omxvideosink0.GstPad:灌电流:电容= VIDEO/x-raine-YUV、width=(int) 1920、height=(int) 1080、format=(fourcc) YY2、帧速率=(fraction) 0/1、 隔行=(布尔值) true
管道是 PREROLLED...
正在将管道设置为正在播放...
新时钟:GstSystemClock
perf0:帧:7       电流:6.95   平均值:6.95 ARM-LOAD:2.
perf0:帧:32      电流:24.98  平均值:15.93 ARM-LOAD:17
perf0:帧:58      电流:25.01  平均值:19.03 ARM-LOAD:16
perf0:帧:83      电流:24.99  平均值:20.50 ARM-LOAD:22
perf0:帧:109     电流:25.00  平均值:21.42 ARM-LOAD:19
perf0:帧:135     电流:25.01  平均值:22.03 ARM-LOAD:14
perf0:帧:160     电流:24.99  平均值:22.45 ARM-LOAD:19
^CCaT 中断--处理中断。
中断:正在停止管道...
执行在7738023408ns 后结束。
正在将管道设置为暂停...
正在将管道设置为就绪...
/GstPipeline0/GstOmxVideoSlink:omxvideosink0.GstPad:SINK:CAP = NULL
/GstPipeline:fipine0/Gstperf:perf0.GstPad:src:cap = NULL
/GstPipeline0/Gstperf:perf0.GstPad:sink:cap = NULL
/GstPipeline:lipine0/GstOmxBaseCtrl:omxbasectrl0.GstPad:src:cap = NULL
/GstPipeline:lipine0/GstOmxBaseCtrl:omxbasectrl0.GstPad:SINK:CAP = NULL
/GstPipeline:流水线0/GstCapsFilter:capsfilter0.GstPad:src:cap = NULL
/GstPipeline:流水线0/GstCapsFilter:capsfilter0.GstPad:SINK:CAP = NULL
/GstPipeline0/GstOmxScale:omxscaler0.GstPad:src:cap = NULL
/GstPipeline0/GstOmxScale:omxscaler0.GstPad:SINK:CAP = NULL
/GstPipeline0/GstOmxH264Dec:omxh264dec0.GstPad:src:cap = NULL
/GstPipeline0/GstOmxH264Dec:omxh264dec0.GstPad:灌电流:电容=空
/GstPipeline:流水线0/GstH264Parse:h264parse0.GstPad:src:cap = NULL
/GstPipeline:流水线0/GstH264Parse:h264parse0.GstPad:SINK:CAP = NULL

(GST-LAUNCH-0.10:1436):Gstreamer-critical **:GST_MINI_OBJECT_UNREF:断言`GST_IS _MINI_OBJECT (MINI_OBJECT)'失败
/GstPipeline0/GstQueue:queue0.GstPad:src:cap = NULL
/GstPipeline0/GstQueue:queue0.GstPad:sink:cap = NULL
/GstPipeline0/GstMpegTSDemux:Demux.GstPad:video_0254:cap = NULL
/GstPipeline:流水线0/GstMpegTSDemux:Demux.GstPad:AUDIO_0048:cap = NULL
/GstPipeline0/GstMpegTSDemux:Demux.GstPad:SINK:CAP = NULL
/GstPipeline:流水线0/GstFileSrc:文件 rc0.GstPad:src:cap = NULL
正在将管道设置为 NULL ...
正在释放管道...
root@dm816x-evm:~

如果我缺少任何东西、请告诉我。

谢谢、

Amit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您会看到它是拆分的、因为您正在使用隔行内容和 OMX_Scaler 播放视频。 在这种情况下、应使用 OMX_mdeiscaler 或 OMX_hdeiscaler、而不是 OMX_scaler。

    下面是一些示例:
    gst-launch -v 文件 rc location=x.264! 'video/x-h264'! 排队! h264parse! OMX_h264dec! OMX_mdeiscaler name=d d.src_00! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 'VIDEO/x-RAWE-YUV、width=(int) 1920、height=(int) 1080/'! 很棒! OMX_videosink d.src_01! fakesink silent =真同步=真


    gst-launch -v filesrc location=jstr.ts typefind=true! mpegtsdemux! 排队! 太粗了! OMX_mpeg2dec! OMX_mdeiscaler name=d d.src_00! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 很棒! OMX_videosink d.src_01! fakesink silent =真同步=真

    希望这对您有所帮助。

    您是否有覆盖包?

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您还可以尝试:
    gst-launch -v 文件 rc location=xx.ts! mpegtsdemux name=多路信号分离器。 !! 排队! 太粗了! OMX_mpeg2dec! OMX_mdeiscaler 帧速率-除数=2 gen-timestings=false name=d d.src_00! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_30! OMX_videosink 显示模式=OMX_DC_MODE_1080p_30呈现延迟=500000000000

    BR
    玛格丽塔