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

如何使用gstreamer从mp4/mkv中提取h264和aac基本流,gstreamer,mp4,h.264,mkv,Gstreamer,Mp4,H.264,Mkv,我无法找到一种稳定平衡的方法来解复用a/V流,然后将其保存为可播放的h264附件B格式视频 嗯,我尝试了以下步骤来创建文件 gst-launch-0.10文件 位置=h264_720p_mp_3.1_3mbps_aac_收缩率.mkv!matroskademux! 文件链接位置=abc.h264 -rw-rw-r--1 XXX XXX 28697147 11月1日10:04 h264\u 720p\u mp\u 3.1\u 3mbps\u aac\u收缩率。mkv -rw-rw-r--1 XXX

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

嗯,我尝试了以下步骤来创建文件

gst-launch-0.10文件 位置=h264_720p_mp_3.1_3mbps_aac_收缩率.mkv!matroskademux! 文件链接位置=abc.h264

-rw-rw-r--1 XXX XXX 28697147 11月1日10:04 h264\u 720p\u mp\u 3.1\u 3mbps\u aac\u收缩率。mkv
-rw-rw-r--1 XXX XXX 27581733 11月1日10:19 abc.h264

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

gst-launch-0.10文件 位置=h264_720p_mp_3.1_3mbps_aac_收缩率.mkv!matroskademux! h264parse!ffdec_h264!ffmpegcolorspace!ximagesink

问题
问题1。使用gstreamer从不同容器中提取视频和音频ES的方法有哪些


问题2。Q1使用其他一些总是有效和/或简单的方法?

通常,您需要指定您感兴趣的焊盘。否则,您无法区分音频和视频

在我的机器上可以执行以下操作:

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 filesrc位置=。/VID-20190903-WA0012.mp4!qtdemux name=pnkj_demux!h264parse!视频/x-h264,流格式=字节流!文件链接位置=。/VID-20190903-WA0012_1.264

gst-launch-1.0-e filesrc location=。/VID-20190903-WA0012.mp4!qtdemux name=pnkj_demux!h264parse!视频/x-h264,流格式=字节流!文件链接位置=。/VID-20190903-WA0012_2.264

gst-launch-1.0 filesrc位置=。/VID-20190903-WA0012.mp4!qtdemux name=pnkj_demux pnkj_demux.video_0!h264parse!视频/x-h264,流格式=字节流!文件链接位置=。/VID-20190903-WA0012_3.264


gst-launch-1.0-e filesrc location=。/VID-20190903-WA0012.mp4!qtdemux name=pnkj_demux pnkj_demux.video_0!h264parse!视频/x-h264,流格式=字节流!文件链接位置=。/VID-20190903-WA0012_4.264

您是否尝试了
mkvmerge
以解复用?从它看来,它是用于链接两个文件,而不是提取。我遗漏了什么吗?解复用器
mkvextract
是mkvtoolnix的一部分。您在这个问题上有什么进展吗?你解决了吗?注意:不是每个.mp4文件都有h.264流。MP4是一个容器,它可能具有不同的编码流,如MPEG-4。