我需要逐帧同步地从 MPEG-TS 流中解复用视频帧和 KLV 数据。以下命令将解复用 KLV 数据并输出包含 KLV 数据的文本文件。
gst-launch-1.0 filesrc location="some_file.ts" ! tsdemux name=demux \
demux. ! queue ! meta/x-klv ! filesink location="some_file-KLV.txt"
以下命令对视频进行解复用并输出视频文件。
gst-launch-1.0 filesrc location="some_file.ts" ! tsdemux name=demux \
demux. ! queue ! decodebin ! videorate ! videoscale ! x264enc ! mp4mux ! filesink location="some_file-video.mp4"
将以上两者结合起来:
gst-launch-1.0 filesrc location="some_file.ts" ! tsdemux name=demux \
demux. ! queue ! decodebin ! videorate ! videoscale ! x264enc ! mp4mux ! filesink location="some_file-video.mp4"
demux. ! queue ! meta/x-klv ! filesink location="some_file.txt"
该命令不起作用。它只是在终端上出现以下消息后卡住了;
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
并且,文本和视频文件的大小为0字节。
我正在使用的 .ts 文件可以直接通过以下任一链接获取:
https://drive.google.com/drive/folders/1t-u8rnEE2MftWQkS1q3UB-J3ogXBr3p9?usp=sharing
谢谢你的帮助!干杯。:)