none
如何把bitmap图像序列和byte[]音频数据流保存到mp4文件? RRS feed

答案

  • 如题,谢谢。

    需要编码器。比如ffmpeg,win10的话可以使用uwp中的图像序列转视频功能(传统桌面应用也可调用此api)。

    这是一个类似视频会议的项目。在具体应用中,想实现把远端传来的“视频图像”(其实是一幅幅bitmap图片)和远端传过来的声音(byte)及本地的MIC收录的声音(byte)实时追加到mp4文件中。

    如果是ffmepg,是不是还得需要把图片和声音数据保存为文件才能实现上述功能?有没有自己构建一个mp4结构文件的方法?

    mp4不是一种结构,这只是容器的一种格式,mp4包括很多种编码方式,我认为你不可能有时间和精力去自己写一个编码器,所以最好是建立在现有开源api之上进行开发。另外建议你先去了解一下mp4方面的相关细节知识,权衡利弊之后再决定如何实现你需要的功能。另外如果不需要共享的话,也可以考虑自创一种符合自己需求的自用文件格式。
    谢谢建议。
    • 已标记为答案 buhuang 2018年7月11日 3:44
    2018年7月11日 3:41

全部回复

  • You can use:

    File.WriteAllBytes("Foo.mp4", arrBytes); // Requires System.IO

    If you have an enumerable and not an array, you can use:

    File.WriteAllBytes("Foo.mp4", arrBytes.ToArray()); // Requires System.Linq

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年7月9日 4:04
  • 如题,谢谢。

    需要编码器。比如ffmpeg,win10的话可以使用uwp中的图像序列转视频功能(传统桌面应用也可调用此api)。

    这是一个类似视频会议的项目。在具体应用中,想实现把远端传来的“视频图像”(其实是一幅幅bitmap图片)和远端传过来的声音(byte)及本地的MIC收录的声音(byte)实时追加到mp4文件中。

    如果是ffmepg,是不是还得需要把图片和声音数据保存为文件才能实现上述功能?有没有自己构建一个mp4结构文件的方法?

    2018年7月9日 8:20
  • You can use:

    File.WriteAllBytes("Foo.mp4", arrBytes); // Requires System.IO

    If you have an enumerable and not an array, you can use:

    File.WriteAllBytes("Foo.mp4", arrBytes.ToArray()); // Requires System.Linq

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    谢谢回复
    2018年7月9日 8:22
  • 如题,谢谢。

    需要编码器。比如ffmpeg,win10的话可以使用uwp中的图像序列转视频功能(传统桌面应用也可调用此api)。

    这是一个类似视频会议的项目。在具体应用中,想实现把远端传来的“视频图像”(其实是一幅幅bitmap图片)和远端传过来的声音(byte)及本地的MIC收录的声音(byte)实时追加到mp4文件中。

    如果是ffmepg,是不是还得需要把图片和声音数据保存为文件才能实现上述功能?有没有自己构建一个mp4结构文件的方法?

    mp4不是一种结构,这只是容器的一种格式,mp4包括很多种编码方式,我认为你不可能有时间和精力去自己写一个编码器,所以最好是建立在现有开源api之上进行开发。另外建议你先去了解一下mp4方面的相关细节知识,权衡利弊之后再决定如何实现你需要的功能。另外如果不需要共享的话,也可以考虑自创一种符合自己需求的自用文件格式。
    2018年7月9日 10:22
  • 你好,

    可以使用C#的 Process.Start 方法来调用ffmpeg.exe 来把图片和音频加到Mp4 文件中,具体的操作,请参考下面的连接。

    #图片

    https://stackoverflow.com/questions/1870103/create-a-video-stream-avi-from-a-series-of-images

    #音频

    https://superuser.com/questions/590201/add-audio-to-video-using-ffmpeg

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年7月10日 8:08
    版主
  • 如题,谢谢。

    需要编码器。比如ffmpeg,win10的话可以使用uwp中的图像序列转视频功能(传统桌面应用也可调用此api)。

    这是一个类似视频会议的项目。在具体应用中,想实现把远端传来的“视频图像”(其实是一幅幅bitmap图片)和远端传过来的声音(byte)及本地的MIC收录的声音(byte)实时追加到mp4文件中。

    如果是ffmepg,是不是还得需要把图片和声音数据保存为文件才能实现上述功能?有没有自己构建一个mp4结构文件的方法?

    mp4不是一种结构,这只是容器的一种格式,mp4包括很多种编码方式,我认为你不可能有时间和精力去自己写一个编码器,所以最好是建立在现有开源api之上进行开发。另外建议你先去了解一下mp4方面的相关细节知识,权衡利弊之后再决定如何实现你需要的功能。另外如果不需要共享的话,也可以考虑自创一种符合自己需求的自用文件格式。
    谢谢建议。
    • 已标记为答案 buhuang 2018年7月11日 3:44
    2018年7月11日 3:41
  • 你好,

    可以使用C#的 Process.Start 方法来调用ffmpeg.exe 来把图片和音频加到Mp4 文件中,具体的操作,请参考下面的连接。

    #图片

    https://stackoverflow.com/questions/1870103/create-a-video-stream-avi-from-a-series-of-images

    #音频

    https://superuser.com/questions/590201/add-audio-to-video-using-ffmpeg

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    谢谢!

    如果用ffmpeg其实还一个更简单的方法,直接录制桌面指定窗口内容和声音,就是觉得用Process调用外部命令不受控,也可能是心理作用。

    2018年7月11日 3:43