2

我找不到稳定且平衡的方法来解复用 A/V 流,然后将其保存为可播放的 h264 附件 B 格式视频。

好吧,我尝试了以下收缩文件的步骤。

gst-launch-0.10 filesrc 位置=h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv !matroskademux !文件接收器位置=abc.h264

-rw-rw-r-- 1 XXX XXX 28697147 Nov 1 10:04 h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv
-rw-rw-r-- 1 XXX XXX 27581733 Nov 1 10:19 abc.h264

文件以“不那么小”的大小保存但不可播放,但父容器格式可通过以下管道播放

gst-launch-0.10 filesrc 位置=h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv !matroskademux !h264解析!ffdec_h264 !ffmpeg色彩空间!ximagesink

问题
Q1。使用 gstreamer 从不同容器中提取视频 ES 和音频 ES 的方法是什么?

Q2。Q1 使用其他一些总是有效和/或容易的方法?

4

2 回答 2

1

一般来说,你需要指定你感兴趣的pad。否则你无法区分音频ES和视频ES。

以下适用于我的机器:

gst-launch-1.0 filesrc location=example.mkv ! queue ! matroskademux name=dmux dmux.video_0 ! queue ! filesink location=vid.265 dmux.audio_0 ! queue ! filesink location=aud.aac
于 2018-03-22T07:10:00.033 回答
0

遵循所有命令对我有用。它从 mp4 视频文件创建 h.264 字节流文件。新创建的文件也使用 ffplay 或 gst-play-1.0 播放

gst-launch-1.0 filesrc 位置=./VID-20190903-WA0012.mp4 !qtdemux 名称=pnkj_demux !h264解析!视频/x-h264,流格式=字节流!文件接收器位置=./VID-20190903-WA0012_1.264

gst-launch-1.0 -e filesrc location=./VID-20190903-WA0012.mp4 !qtdemux 名称=pnkj_demux !h264解析!视频/x-h264,流格式=字节流!文件接收器位置=./VID-20190903-WA0012_2.264

gst-launch-1.0 filesrc 位置=./VID-20190903-WA0012.mp4 !qtdemux 名称=pnkj_demux pnkj_demux.video_0 !h264解析!视频/x-h264,流格式=字节流!文件接收器位置=./VID-20190903-WA0012_3.264

gst-launch-1.0 -e filesrc location=./VID-20190903-WA0012.mp4 !qtdemux 名称=pnkj_demux pnkj_demux.video_0 !h264解析!视频/x-h264,流格式=字节流!文件接收器位置=./VID-20190903-WA0012_4.264

于 2019-09-27T08:57:45.047 回答