Gstreamer 管道将 MPEG-4 视频转换为 MPEG-TS 格式
Gstreamer pipeline to convert MPEG-4 video to MPEG-TS format
我正在尝试编写 gstreamer 管道以将 mpeg4 视频转换为 mpegts 格式。
我在管道下方尝试过但没有成功
$ gst-launch-1.0 -e filesrc location=20200818125158_00001.ts.mp4 ! qtdemux name=mdemux ! \
h264parse ! video/x-h264,stream-format=byte-stream ! mpegtsmux name=mux ! filesink location=20200818125158_00001.ts
在管道上方执行时出现以下错误
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPipeline:pipeline0/GstQTDemux:mdemux: Delayed linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:mdemux:
failed delayed linking some pad of GstQTDemux named mdem
我的输入格式
gst-discoverer-1.0 vid.mp4
Analyzing file:///vid.mp4
Done discovering file:///vid.mp4
Topology:
container: Quicktime
video: MPEG-4 Video (Simple Profile)
Properties:
Duration: 0:00:07.267000000
Seekable: yes
Live: no
Tags:
video codec: MPEG-4 video
maximum bitrate: 8400000
bitrate: 298925
encoder: Lavf57.83.100
container format: ISO MP4/M4A
我的目标格式
Topology:
container: MPEG-2 Transport Stream
video: H.264 (High Profile)
Properties:
Duration: 0:00:09.900164000
Seekable: yes
Live: no
Tags:
video codec: H.264
video codec: MPEG-4 video
源文件中的视频编解码器是 MPEG-4 视频。这与 H.264 不同。尝试 mpegvideoparse
而不是 h264parse
.
Als video/x-h264,stream-format=byte-stream
上限强制不应该是必需的。解析器和混合器应该自己就上限达成一致。
在花费多个小时并阅读了更多有关 gstreamer 的信息后,我找到了正确的管道。下面的管道对我有用
gst-launch-1.0 filesrc location=vid.mp4 ! qtdemux ! avdec_mpeg4 ! X264enc ! mpegtsmux ! filesink location=vid.ts
我正在尝试编写 gstreamer 管道以将 mpeg4 视频转换为 mpegts 格式。
我在管道下方尝试过但没有成功
$ gst-launch-1.0 -e filesrc location=20200818125158_00001.ts.mp4 ! qtdemux name=mdemux ! \
h264parse ! video/x-h264,stream-format=byte-stream ! mpegtsmux name=mux ! filesink location=20200818125158_00001.ts
在管道上方执行时出现以下错误
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPipeline:pipeline0/GstQTDemux:mdemux: Delayed linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:mdemux:
failed delayed linking some pad of GstQTDemux named mdem
我的输入格式
gst-discoverer-1.0 vid.mp4
Analyzing file:///vid.mp4
Done discovering file:///vid.mp4
Topology:
container: Quicktime
video: MPEG-4 Video (Simple Profile)
Properties:
Duration: 0:00:07.267000000
Seekable: yes
Live: no
Tags:
video codec: MPEG-4 video
maximum bitrate: 8400000
bitrate: 298925
encoder: Lavf57.83.100
container format: ISO MP4/M4A
我的目标格式
Topology:
container: MPEG-2 Transport Stream
video: H.264 (High Profile)
Properties:
Duration: 0:00:09.900164000
Seekable: yes
Live: no
Tags:
video codec: H.264
video codec: MPEG-4 video
源文件中的视频编解码器是 MPEG-4 视频。这与 H.264 不同。尝试 mpegvideoparse
而不是 h264parse
.
Als video/x-h264,stream-format=byte-stream
上限强制不应该是必需的。解析器和混合器应该自己就上限达成一致。
在花费多个小时并阅读了更多有关 gstreamer 的信息后,我找到了正确的管道。下面的管道对我有用
gst-launch-1.0 filesrc location=vid.mp4 ! qtdemux ! avdec_mpeg4 ! X264enc ! mpegtsmux ! filesink location=vid.ts