Why not put the mp4 on an HTTP server? Why would you write your own server for this?
On Friday, August 24, 2012 12:24:46 AM UTC-5, Sever wrote: > > I have code: > > private MediaRecorder recorder; >> >> String hostname = "192.168.1.125"; >> int port = 1935; >> Socket socket; >> ParcelFileDescriptor pfd; >> public void start() >> { >> >> try { >> socket = new Socket(InetAddress.getByName(hostname), port); >> pfd = ParcelFileDescriptor.fromSocket(socket); >> >> } catch (UnknownHostException e) { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } catch (IOException e) { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } >> >> recorder.setOutputFile(pfd.getFileDescriptor()); >> // String filename = String.format("/sdcard/%d.mp4", >> System.currentTimeMillis()); >> // >> // recorder.setOutputFile(filename); >> >> try >> { >> recorder.prepare(); >> recorder.start(); >> } >> catch (IllegalStateException e) >> { >> e.printStackTrace(); >> } >> catch (IOException e) >> { >> e.printStackTrace(); >> } >> } > > > And Server side: > > import java.io.DataInputStream; >> import java.io.FileOutputStream; >> import java.io.IOException; >> import java.io.InputStream; >> import java.net.ServerSocket; >> import java.net.Socket; >> >> public class Server { >> >> public static void main(String[] args) >> { >> >> try >> { >> System.out.println("create sock"); >> ServerSocket svsock = new ServerSocket(1935); >> >> System.out.println("accept"); >> Socket sock = svsock.accept(); >> System.out.println("buffer read"); >> >> FileOutputStream outFile = null; >> >> String filename = String.format("%d.mp4", >> System.currentTimeMillis()); >> >> try { >> outFile = new >> FileOutputStream(filename); >> System.out.println(filename); >> } catch (IOException e1) { >> e1.printStackTrace(); >> } >> >> InputStream is = new >> DataInputStream(sock.getInputStream()); >> byte[] byteBuffer = new byte[1024]; >> >> int allsize = 0; >> while(sock.isConnected()) { >> >> int size = is.read(byteBuffer); >> if (size == -1){ >> break; >> } else { >> >> outFile.write(byteBuffer, 0, size); >> } >> allsize += size; >> >> } >> System.out.println("close size=" + >> allsize); >> outFile.close(); >> sock.close(); >> >> } >> catch(Exception e) >> { >> e.printStackTrace(); >> } >> >> System.out.println("endmain"); >> } >> } > > > I test it on Android 2.2.2 (HTC quiet brilliant) and all works fine. When > I press "start" button Server create file and record data from stream to > file. After this file is normally play in VLC player and etc. > > > But when I test it on Android 4.0.4 (Galaxy S2) Server create file and > record data from stream to file but not play in VLC (and other players too) > and give me error > > mp4 error: MP4 plugin discarded (no moov,foov,moof box) >> avcodec error: Could not open �codec demux error: Specified event object >> handle is invalid >> ps error: cannot peek >> main error: no suitable demux module for `file/:///C:/1345461283455.mp4' > > > I also try to upload this file to youtube, but after upload youtube give > me error like file format is unsupported. > > > But Android 4.0.4 (Galaxy S2) succesfully create and then play file when I > save it on phone memory (not stream to server) > > I think problem maybe on server side, or something changed on android > 4.0.4. > > Please, help me. > Thanks in advance. > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en