亲爱的开发者社区 我正在开发一个带有gstreamer管道的嵌入式视频盒,用于视频处理。一切正常但现在我有一个问题:我有一个编码管道用于从我的mkv视频创建mp4。但现在我想在视频之前添加一个介绍,在视频之后添加outro。我这两个文件都是mkv和mp4。我需要一些帮助来创建一个管道创建我的mp4串联这3个视频。所以介绍与视频连接,最后也应添加outro。知道如何使用gstreamer进行简单的串行连接管道吗?我感谢所有的帮助! 编辑完成:我的gstreamer安装真的已经过时 - 但我现在无法更新它有多种原因(旧的arch linux,需要花费太多时间来设置dev env)。这是我当前的bin,它从原始mkv(MJPEG)电影创建mp4:
QGst::BinPtr m_encBin = QGst::Bin::fromDescription(
"filesrc location=\""+path+"videoname.raw.mkv\" ! queue ! matroskademux name=\"demux\" "
"demux.video_00 ! queue ! ffmpegcolorspace ! queue ! x264enc ! queue ! mux.video_00 "
"demux.audio_00 ! queue ! audioconvert ! queue ! faac ! queue ! mux.audio_00 "
"mp4mux name=\"mux\" ! queue ! filesink name=\"filesink\" sync=false ", QGst::Bin::NoGhost);
当我将此bin添加到管道时它工作正常,当我设置管道的位置var时,我得到带有音频的mp4文件。我现在有第二个管道,它包含intro.mp4和outro.mp4,这主要是因为我需要覆盖文本。我现在需要的是连接电影。当拆解或最终使用mp4时,我不会在飞行中关注天气。
更新:我找到了一个解决方案来连接最新的ffmpeg安装:
ffmpeg -i intro.mp4 -map 0 -c copy -f mpegts -bsf h264_mp4toannexb intro.ts
ffmpeg -i outro.mp4 -map 0 -c copy -f mpegts -bsf h264_mp4toannexb outro.ts
ffmpeg -i movie.mp4 -map 0 -c copy -f mpegts -bsf h264_mp4toannexb movie.ts
ffmpeg -i "concat:intro.ts|movie.ts|outro.ts" -c copy -absf aac_adtstoasc finalconcatmovie.mp4
重要提示:所有电影都必须具有相同的尺寸和编解码器,即h264,分辨率为1024x576。当电影有音轨时,intro和outro不会包含音频。我的ffmpeg安装现在会自动将空音轨添加到intro和outro以便能够连接电影。
问题是我在旧的arch linux安装上运行它,如果缺少音频通道,我的ffmpeg不会自动创建和添加音频通道。所以我坚持这个。知道如何添加音频并连接电影吗?
谢谢 弗雷德里克