Android中的视频流:处理格式和标题

时间:2011-05-06 05:54:10

标签: java android video format live-streaming

我目前正在尝试从Android设备流式传输实时视频。不幸的是,我无法读取通过网络获得的流。

我发现问题是由于用于录制视频的格式(ISO Media,MPEG v4系统,3GPP)。

以下是我如何初始化录像机:

    // Sources
    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

    // HD
    CamcorderProfile highProfile = CamcorderProfile
            .get(CamcorderProfile.QUALITY_HIGH);
    recorder.setProfile(highProfile);
    recorder.setOutputFile(PATH);

如果视频当前正在拍摄(仍然在FS上写),这是我在阅读文件开头时获得的内容(我使用$ adb pull /sdcard/video获得该文件):

MacBook-Romain:result rbochet$ hexdump video-current.mp4 | head -2
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000010 00 00 00 00 00 00 00 00 00 00 00 08 6d 64 61 74

录制结束时,标题如下所示:

MacBook-Romain:result rbochet$ hexdump video.mp4 | head -2
0000000 00 00 00 18 66 74 79 70 33 67 70 34 00 00 03 00
0000010 33 67 70 34 33 67 70 36 00 07 56 83 6d 64 61 74

事实上,这种方法不适合直播,因为我们只知道文件的长度和长度......

问题:如何实际投放流媒体? 我看到的一个解决方案是发送小块,但我认为这个解决方案实际上很糟糕......应该存在更好的东西,因为像SipDroid这样的程序能够流式传输。 如果您能够理解他们的代码,您能解释一下吗?我看了the code,但对我来说并不是那么清楚。

代码将作为开源发布,所以每个寻求解决这种棘手问题的方法的人都会感到愉快(我知道SO上有很多类似的线程)。

以下是基本相机应用的代码:https://github.com/rbochet/Simple-Camera-App

感谢您的帮助。

0 个答案:

没有答案