Check the Gpac source forge page
http://gpac.cvs.sourceforge.net/viewvc/gpac/gpac/applications/mp4box/
The app mp4box does the conversion.
Roman ( T-Mobile USA)
View profile
More options Oct 21, 11:16 am
From: "Roman ( T-Mobile USA)" <[email protected]>
Date: Wed, 21 Oct 2009 11:16:45 -0700 (PDT)
Local: Wed, Oct 21 2009 11:16 am
Subject: Re: android record video(3gp) to remote server
Reply | Reply to author | Forward | Print | Individual message | Show
original | Remove | Report this message | Find messages by this author
I have no idea what will be supported in future. I hope only that the
media framework offers a much better support for real time streaming.
You could try to port some open source code to Android which converts
3gp to a streamable format.
--
Roman Baumgaertner
Sr. SW Engineer-OSDC
·T· · ·Mobile· stick together
The views, opinions and statements in this email are those of the
author solely in their individual capacity, and do not necessarily
represent those of T-Mobile USA, Inc.
On Oct 21, 5:30 pm, ivan <[email protected]> wrote:
> You wouldn't happen to know of any off hand...?
>
> On Oct 21, 12:16 pm, "Roman ( T-Mobile USA)" <roman.baumgaert...@t-
>
> mobile.com> wrote:
> > I have no idea what will be supported in future. I hope only that the
> > media framework offers a much better support for real time streaming.
>
> > You could try to port some open source code to Android which converts3gpto
> > a streamable format.
>
> > --
> > Roman Baumgaertner
> > Sr. SW Engineer-OSDC
> > ·T· · ·Mobile· stick together
> > The views, opinions and statements in this email are those of the
> > author solely in their individual capacity, and do not necessarily
> > represent those of T-Mobile USA, Inc.
>
> > On Oct 21, 12:16 am, ivan <[email protected]> wrote:
>
> > > Are there plans to implement 3gps, 3gpt or 3gpr streamable formats
> > > from the MediaRecorder?
>
> > > On Oct 19, 4:21 pm, "Roman ( T-Mobile USA)" <roman.baumgaert...@t-
>
> > > mobile.com> wrote:
> > > > A file which is recorded as a3gpfile by the Android MediaRecorder is
> > > > NOT streamable. You would need to make it streamable before trying to
> > > > play it back via the MediaPlayer.
>
> > > > --
> > > > Roman Baumgaertner
> > > > Sr. SW Engineer-OSDC
> > > > ·T· · ·Mobile· stick together
> > > > The views, opinions and statements in this email are those of the
> > > > author solely in their individual capacity, and do not necessarily
> > > > represent those of T-Mobile USA, Inc.
>
> > > > On Oct 18, 8:36 pm, zongan liu <[email protected]> wrote:
>
> > > > > After several days of agonizing, ultimately did not solve the problem,
> > > > > is hereby published issue and hoping to get friends to help.
>
> > > > > Requirements: The android to record video and transmitted through the
> > > > > socket means to save the file on the server (3gpfile).
>
> > > > > Question:3gpfiles saved to the server, mobile player can't open,3gp
> > > > > file encoding is not correct.
>
> > > > > Note: stored in the phone's local system,3gpfiles encoded in the
> > > > > correct format, mobile phone player to open.
>
> > > > > android record code:
>
> > > > > String hostname = "192.168.20.106";
> > > > > int port = 1234;
> > > > > try
> > > > > {
> > > > > socket = new
> > > > > Socket(InetAddress.getByName(hostname), port);
> > > > > }
> > > > > catch (UnknownHostException e)
> > > > > {
> > > > > e.printStackTrace();
> > > > > }
> > > > > catch (IOException e)
> > > > > {
> > > > > e.printStackTrace();
> > > > > }
> > > > > ParcelFileDescriptor pfd =
> > > > > ParcelFileDescriptor.fromSocket(socket);
> > > > > mMediaRecorder = new MediaRecorder();
>
> > > > > // 设置以流方式输出
> > > > > mMediaRecorder.setOutputFile(pfd.getFileDescriptor());
> > > > >
> > > > > mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
> > > > >
> > > > > mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
> > > > >
> > > > > mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
> > > > > mMediaRecorder.setOutputFormat
> > > > > (MediaRecorder.OutputFormat.THREE_GPP);
> > > > > mMediaRecorder.setVideoSize(176, 144);
> > > > > mMediaRecorder.setVideoFrameRate(15);
> > > > >
> > > > > mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
> > > > >
> > > > > mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
> > > > > mMediaRecorder.setMaxDuration(10000);
>
> > > > > Server receives the data code:
> > > > > public MultiThreadServer() throws IOException
> > > > > {
> > > > > serverSocket = new ServerSocket(port);
> > > > > // Runtime的availableProcessor()方法返回当前系统的CPU数目.
> > > > > executorService =
> > > > > Executors.newFixedThreadPool(Runtime.getRuntime
> > > > > ().availableProcessors() * POOL_SIZE);
>
> > > > > System.out.println("服务器启动");
> > > > > }
>
> > > > > public void service()
> > > > > {
> > > > > while (true)
> > > > > {
> > > > > Socket socket = null;
> > > > > try
> > > > > {
> > > > > //
> > > > > 接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
> > > > > socket = serverSocket.accept();
> > > > > //executorService.execute(new
> > > > > Handler(socket));
> > > > > new Thread(new
> > > > > Handler(socket)).start();
>
> > > > > }
> > > > > catch (Exception e)
> > > > > {
> > > > > e.printStackTrace();
> > > > > }
> > > > > }
> > > > > }
>
> > > > > Handler class code:
>
> > > > > public Handler(Socket socket)
> > > > > {
> > > > > this.socket = socket;
> > > > > d = new File("D:/ds");
> > > > > if (!d.exists())
> > > > > {
> > > > > d.mkdirs();
> > > > > }
>
> > > > > try
> > > > > {
> > > > > store = File.createTempFile("sdsd", ".3gp",
> > > > > d);
> > > > > fos = new FileOutputStream(store);
> > > > > socketIn = socket.getInputStream();
> > > > > }
> > > > > catch (IOException e)
> > > > > {
> > > > > // TODO Auto-generated catch block
> > > > > e.printStackTrace();
> > > > > }
> > > > > }
>
> > > > > public void run()
> > > > > {
> > > > > try
> > > > > {
> > > > > System.out.println("New connection accepted "
> > > > > +
> > > > > socket.getInetAddress() + ":" + socket.getPort());
>
> > > > > while ((length = socketIn.read(buffer)) != -1)
> > > > > {
> > > > > fos.write(buffer, 0, length);
> > > > > fos.flush();
> > > > > System.out.println("正在写入中。。。。" +
> > > > > length);
> > > > > }
>
> > > > > fos.flush();
> > > > > store = null;
> > > > > socketIn.close();
> > > > > }
> > > > > catch (IOException e)
> > > > > {
> > > > > e.printStackTrace();
> > > > > }
> > > > > finally
> > > > > {
> > > > > try
> > > > > {
> > > > > fos.close();
> > > > > fos = null;
> > > > > store = null;
> > > > > if (socket != null)
> > > > > socket.close();
> > > > > }
> > > > > catch (IOException e)
> > > > > {
> > > > > e.printStackTrace();
> > > > > }
> > > > > }
> > > > > System.out.println("-----------------------------完毕");
> > > > > }
>
> > > > > You help me find the cause of it, in this thank you. Given at the high
> > > > > score! ! !- Hide quoted text -
>
> > > > - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---