如何使用gstreamer从mp4 / mkv中提取h264和aac基本流



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

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

GST-launch-0.10 文件RC location=h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv ! 马特罗斯卡德穆克斯! 文件墨水位置=abc.h264

-

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

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

GST-launch-0.10 文件RC location=h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv ! 马特罗斯卡德穆克斯! h264解析!ffdec_h264!ffmpeg彩色空间!ximagesink

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

问题 2. Q1 使用其他一些总是有效和/或容易的方法?

通常,您需要指定感兴趣的垫子。否则,您无法区分音频 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

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

gst-launch-1.0 文件rc 位置=./VID-20190903-WA0012.mp4 ! qtdemux 名称=pnkj_demux ! h264解析 ! video/x-h264,流格式=字节流! 文件墨水位置=./VID-20190903-WA0012_1.264

gst-launch-1.0 -e 文件rc 位置=./VID-20190903-WA0012.mp4 ! qtdemux 名称=pnkj_demux ! h264解析! video/x-h264,流格式=字节流! 文件墨水位置=./VID-20190903-WA0012_2.264

gst-launch-1.0 文件rc 位置=./VID-20190903-WA0012.mp4 ! qtdemux 名称=pnkj_demux pnkj_demux.video_0 ! h264解析! video/x-h264,流格式=字节流! 文件墨水位置=./VID-20190903-WA0012_3.264

gst-launch-1.0 -e 文件rc 位置=./VID-20190903-WA0012.mp4 ! qtdemux 名称=pnkj_demux pnkj_demux.video_0 ! h264解析! video/x-h264,流格式=字节流! 文件墨水位置=./VID-20190903-WA0012_4.264

最新更新