2012-01-08 1 views
0

Android 용 비디오를 스트리밍하는 작은 프로젝트가 있습니다. 스트리밍이 끝났지 만 비디오 제어에 문제가 있습니다. MediaController는 일시 정지 버튼을 눌러도 효과가 없습니다. VideoView.pause()도 작동하지 않습니다. 스트리밍 서버는 GStreamer (서버는 내 친구가 썼습니다)를 기반으로하며 Android 2.2 CyanogenMod를 사용합니다. 내가 수집 한 것과Android VideoView GStreamer 스트리밍 (MediaController가 작동하지 않음)

#include <gst/gst.h> 

#include <gst/rtsp-server/rtsp-server.h> 

int 
main (int argc, char *argv[]) 
{ 
    GMainLoop *loop; 
    GstRTSPServer *server; 
    GstRTSPMediaMapping *mapping; 
    GstRTSPMediaFactory *factory; 
    gchar *str; 

    gst_init (&argc, &argv); 

    if (argc < 2) { 
    g_message ("usage: %s <filename>", argv[0]); 
    return -1; 
    } 

    loop = g_main_loop_new (NULL, FALSE); 

    /* create a server instance */ 
    server = gst_rtsp_server_new(); 

    /* get the mapping for this server, every server has a default mapper object 
    * that be used to map uri mount points to media factories */ 
    mapping = gst_rtsp_server_get_media_mapping (server); 

    str = g_strdup_printf ("(" 
     "filesrc location=\"%s\" ! decodebin2 name=d " 
     "d. ! queue ! videoscale ! video/x-raw-yuv, width=500, height=300 " 
     "! ffenc_mpeg4 ! rtpmp4vpay name=pay0 " 
     "d. ! queue ! audioconvert ! faac ! rtpmp4apay name=pay1" 
     ")", argv[1]); 

    /* make a media factory for a test stream. The default media factory can use 
    * gst-launch syntax to create pipelines. 
    * any launch line works as long as it contains elements named pay%d. Each 
    * element with pay%d names will be a stream */ 
    factory = gst_rtsp_media_factory_new(); 
    gst_rtsp_media_factory_set_launch (factory, str); 
    g_free (str); 

    /* attach the test factory to the /test url */ 
    gst_rtsp_media_mapping_add_factory (mapping, "/test", factory); 

    /* don't need the ref to the mapper anymore */ 
    g_object_unref (mapping); 

    /* attach the server to the default maincontext */ 
    gst_rtsp_server_attach (server, NULL); 

    /* start serving */ 
    g_main_loop_run (loop); 

    return 0; 
} 

답변

0

는 안드로이드에서 VideoViewh.264 그래서 피드 당신이 h.264에서 인코딩 할 필요가 허용합니다

이 서버 코드입니다.