Gstreamer:将Matroska视频转换为mp4

Gstreamer:将Matroska视频转换为mp4,gstreamer,Gstreamer,我们正在使用的硬件不支持播放mkv文件。 所以我需要将Matroska(mkv)视频文件A转换为mp4视频文件 正如我从在线转码材料中了解到的,我需要做以下工作: 使用matroskademux元素分离出不同的mkv文件流 使用可用的mkv解码器和 将该数据提供给mp4 Muxer元件,并重新编码为所需格式 有人能告诉我我是否采用了正确的方法吗? 这方面的任何信息/链接都会非常有用 vikram根据Matroska文件中的内容,您可能根本不需要对其进行解码,只需重新使用即可 例如,我假设视频是H

我们正在使用的硬件不支持播放mkv文件。 所以我需要将Matroska(mkv)视频文件A转换为mp4视频文件

正如我从在线转码材料中了解到的,我需要做以下工作:

  • 使用matroskademux元素分离出不同的mkv文件流
  • 使用可用的mkv解码器和
    将该数据提供给mp4 Muxer元件,并重新编码为所需格式
  • 有人能告诉我我是否采用了正确的方法吗? 这方面的任何信息/链接都会非常有用


    vikram

    根据Matroska文件中的内容,您可能根本不需要对其进行解码,只需重新使用即可

    例如,我假设视频是H264,所以只需重复一下即可。 下面是gst启动的示例管道,用于使用h264和mp3更新文件

    gst-launch-0.10 -v filesrc location=$file \
    ! matroskademux name="demux" demux. ! h264parse ! queue \
    ! mp4mux name=mux ! filesink location=$file._out.mp4 demux. \
    ! mp3parse ! queue ! mux.`
    

    您也可以查看(www.linuxrising.org),该网站会提供您想要的信息。

    谢谢您的回复。我还有一个问题:使用您提到的上述命令,在音频流为mp3的情况下,我能够将mkv重新复制到mp4。如果mkv有aac音频流,那么我尝试使用aacparser。不知何故,管道队列没有与aacparse元素链接。在与aacparse相关的一篇文章中提到,如果音频流中的“framed”字段设置为true,则“aacparse”元素无法链接到管道队列。在这种情况下,我是否需要将音频流解码为原始格式,然后重新编码以匹配mp4mux元素接收器?GStreamer git中的解析器已经有很多修复程序,目标是在几周内发布新版本,我认为这些应该可以修复您的问题。