相关疑难解决方法(0)

从Android Camera创建RTP数据包到发送

我是Android和套接字编程的新手.我想创建一个Android应用程序,将视频从设备相机实时传输到PC.我首先要做的是从PreviewCallback参数获取原始视频数据并将其转换为RTP数据包.我只是使用JLibRTP来做到这一点.关于传输数据包我认为,有一些相关的类:RtpPkt,RtpSession和RtpSocket.

这是我的一瞥代码:

DatagramSocket rtpSocket = new DatagramSocket();
DatagramSocket rtcpSocket = new new DatagramSocket();
RtpSession rtpSession = new RtpSession(rtpSocket, rtcpSocket);

public void surfaceCreated(SurfaceHolder holder) {
    try {
            camera = Camera.open();
            camera.setPreviewCallback(new PreviewCallback() {
                public void onPreviewFrame(byte[] _data, Camera _camera) {
                int height = 240;
                    try {
                        rtps.sendData(_data);
                     } catch (Exception e) {
                        e.printStackTrace();
                        Toast.makeText(getApplicationContext(), e.toString(),
                        Toast.LENGTH_SHORT).show();
                    }
                }
            });
            camera.setPreviewDisplay(holder);
            camera.startPreview();
    } catch (IOException e) {
            Log.d("CAMERA", e.getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

我仍然想知道我必须在哪里放置地址和端口信息.我知道上面的代码仍然需要你修改任何主人.谢谢你提前..

camera android rtp live-streaming

19
推荐指数
1
解决办法
3万
查看次数

使用 FFMPEG 从 Android 流式传输图像

我目前正在从外部源接收图像作为字节数组,我想通过 ffmpeg 将其作为原始视频格式发送到流 URL,其中我有一个接收 RTSP 流的 RTSP 服务器(类似的未回答的问题)。但是,我没有在 Java 中使用过 FFMPEG,所以我找不到有关如何操作的示例。我有一个回调将图像字节复制到字节数组,如下所示:

        public class MainActivity extends Activity {
            final String rtmp_url = "rtmp://192.168.0.12:1935/live/test";
            private int PREVIEW_WIDTH = 384;
            private int PREVIEW_HEIGHT = 292;
            private String TAG = "MainActivity";
            String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);
            final String command[] = {ffmpeg,
                            "-y",  //Add "-re" for simulated readtime streaming.
                            "-f", "rawvideo",
                            "-vcodec", "rawvideo",
                            "-pix_fmt", "bgr24",
                            "-s", (Integer.toString(PREVIEW_WIDTH) + "x" + Integer.toString(PREVIEW_HEIGHT)),
                            "-r", "10",
                            "-i", "pipe:",
                            "-c:v", "libx264",
                            "-pix_fmt", "yuv420p",
                            "-preset", "ultrafast",
                            "-f", "flv",
                            rtmp_url}; …
Run Code Online (Sandbox Code Playgroud)

python java android stdin ffmpeg

4
推荐指数
1
解决办法
2107
查看次数

标签 统计

android ×2

camera ×1

ffmpeg ×1

java ×1

live-streaming ×1

python ×1

rtp ×1

stdin ×1