将音频和视频RTP数据合并到mp4文件中

时间:2015-07-03 11:15:54

标签: windows audio video ffmpeg

我通过套接字连接接收音频和视频RTP数据。现在我想将视频和音频RTP数据合并到MP4文件中。我怎样才能做到这一点?我是否需要将视频RTP分别保存到h264和音频RTP到PCMU中,然后将它们合并到MP4文件中?或者是否可以直接将音频 - 视频RTP合并到MP4文件中?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您无需创建单独的音频和视频文件即可将其复制到MP4(或任何容器)。但是在你的程序中,你需要从RTP数据包中制作H.264和PCMU帧并将它们传输到FFMPEG。

总而言之,你编程的伪代码应该是这样的,

Main {
    //Setup RTP receiver
    //Configure MP4 Muxer of FFMPEG (set input and oputput format), your input is H.264 and PCMU and output is MP4
    //avformat_alloc_output_context2
    //avformat_new_stream

    //Create Thread1 to read audio RTP packets
    //Create Thread2 to read video RTP packets

    //Complete writing MP4 file
    //av_write_trailer
}

Thread1 ()
{
    //Receive audio RTP packets
    //Form an Audio frame

    //Send the frame to muxer av_interleaved_write_frame
}

Thread1 ()
{
    //Receive video RTP packets
    //Form an Audio frame

    //Send the frame to muxer av_interleaved_write_frame
}

希望这些有帮助。 ffmpeg源代码中提供的Muxer示例将很有帮助。 https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/muxing.c