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

时间:2013-11-01 11:02:27

标签: gstreamer mp4 h.264 mkv

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

好吧,我为shrinkage文件尝试了以下步骤。

  

gst-launch-0.10 filesrc   location = h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv! matroskademux!   filesink location = 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 filesrc   location = h264_720p_mp_3.1_3mbps_aac_shrinkage.mkv! matroskademux!   h264parse! ffdec_h264! ffmpegcolorspace! ximagesink

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

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

2 个答案:

答案 0 :(得分:0)

一般情况下,您需要指定您感兴趣的播放器。否则,您无法将音频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

答案 1 :(得分:0)

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

播放

gst-launch-1.0 filesrc位置=。/ VID-20190903-WA0012.mp4! qtdemux名称= pnkj_demux! h264parse! video / x-h264,stream-format = byte-stream! filesink location =。/ VID-20190903-WA0012_1.264

gst-launch-1.0 -e filesrc位置=。/ VID-20190903-WA0012.mp4! qtdemux名称= pnkj_demux! h264parse! video / x-h264,stream-format = byte-stream! filesink location =。/ VID-20190903-WA0012_2.264

gst-launch-1.0 filesrc位置=。/ VID-20190903-WA0012.mp4! qtdemux名称= pnkj_demux pnkj_demux.video_0! h264parse! video / x-h264,stream-format = byte-stream! filesink location =。/ VID-20190903-WA0012_3.264

gst-launch-1.0 -e filesrc位置=。/ VID-20190903-WA0012.mp4! qtdemux名称= pnkj_demux pnkj_demux.video_0! h264parse! video / x-h264,stream-format = byte-stream! filesink location =。/ VID-20190903-WA0012_4.264