Я пытаюсь транслировать видео с VLC на HTC G1.После нескольких «это должно сработать» я обнаружил цепочку, которая позволила мне наблюдать за потоком через VLC.Я также могу слышать звук на андроиде.
Я использую цепочку соутов:
vlc some_file.mp4 -I http --sout "#transcode{soverlay,ab=128,samplerate=44100,channels=2,acodec=mp4a,vcodec=h264,width=480,height=270,vfilter="canvas{width=480,height=270,aspect=16:9}",fps=25,vb=800,venc=x264{level=12,no-cabac,subme=20,threads=4,bframes=0,min-keyint=1,keyint=50}}:gather:rtp{mp4a-latm,sdp=rtsp://0.0.0.0:5554/stream.sdp}"
Вот что я делаю на дроиде:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vv = (VideoView) findViewById(R.id.video_view);
vv.setVideoURI(Uri.parse("rtsp://<local_ip>:5554/stream.sdp"));
vv.start();
}
Я старался сделать его как можно более минимальным (на самом деле это пример, который я нашел в другой ветке здесь).Я также пытался использовать MediaPlayer:
MediaPlayer mp = MediaPlayer.create(this, Uri.parse("rtsp://<local_ip>:5554/stream.sdp"));
mp.setDisplay(vv.getHolder());
mp.start();
Я использую setDisplay (SurfaceHolder), потому что кто-то упомянул MediaPlayer, иначе не будет знать, какой дисплей использовать.
Есть идеи, что я пропустил или делаю неправильно?
Редактировать: я намекнул на файл с MP4Box