我需要在使用Matroska容器时在H.264中对v4l2src源进行编码。如果我的.mkv文件带有嵌入式字幕,则很容易使用
提取字幕gst-launch-1.0 filesrc location=test.mkv ! matroskademux ! "text/x-raw" ! filesink location=subtitles
根据我的理解并假设我理解正确,在编码过程中,“subtitle_%u”pad需要使用textoverlay链接到text / x-raw源。
gst-launch-1.0 textoverlay text="Video 1" valignment=top halignment=left font-desc="Sans, 60" ! mux. imxv4l2src device=/dev/video0 ! timeoverlay ! videoconvert ! queue ! vpuenc_h264 ! capsfilter
caps="video/x-h264" ! matroskamux name=mux ! filesink location=sub.mkv
我使用上面的管道,但我没有在.mkv视频中获得叠加层。在matroska容器中对H.264中的源进行编码时对字幕/文本覆盖进行编码的正确方法是什么,然后才能使用第一个管道提取它?
答案 0 :(得分:0)
你可以试试这个:
gst-launch-1.0 \
filesrc location=subtitles.srt ! subparse ! kateenc category=SUB ! mux.subtitle_0 \
imxv4l2src device=/dev/video0 ! timeoverlay ! videoconvert ! queue ! vpuenc_h264 ! \
capsfilter caps="video/x-h264" ! matroskamux name=mux ! filesink location=sub.mkv
subtitles.srt文件可能是这样的:
1
00:00:00,500 --> 00:00:05,000
CAM 1
2
00:00:05,500 --> 00:00:10,000
That's all folks !