首先技术调研,自学android,有不对的地方请指教。
android 多媒体视频播放: https://www.cnblogs.com/yishujun/p/5378114.html
想先找android原生播放视频的方式:
菜鸟教程:https://www.runoob.com/w3cnote/android-tutorial-mediaplayer.html
一、MediaPlayer播放音频
MediaPlayer + SurfaceView播放视频
VideoView来直接 播放视频
跟着下载项目,解决编译报错。运行,可以播放本地的MP4
http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
https://flv2.bn.netease.com/videolib1/1811/26/OqJAZ893T/HD/OqJAZ893T-mobile.mp4
AndroidManifest.xml 加入权限
<uses-permission android:name="android.permission.INTERNET"/>
但只有VideoView 可以播放rtsp。但播放不流畅,这种方式只能播放rtsp流文件,不能播放实时流。
二、ijkPlayer
https://blog.csdn.net/a910626/article/details/93657087
基于FFmpeg的轻量级Android/iOS视频播放器
https://github.com/Bilibili/ijkplayer
ijkplayer是b站基于FFmpeg开源的播放器,ijkplayer提供了个IjkMediaPlayer,功能和用法跟MediaPlayer类似,但是强大很多
https://blog.csdn.net/y331271939/article/details/83217507
https://blog.csdn.net/qwe511455842/article/details/80373217
https://www.jianshu.com/p/0ae5924cc7d6
https://www.jianshu.com/p/a57bbdd78798
https://github.com/AriaLyy/BlogDemo
https://github.com/AriaLyy/BlogDemo/tree/master/FlowVideoTest
我下载的例子播放不了rtsp, 但是可以播放rtmp
三、GiraffePlayer
下载demo跑起来。可以播放本地MP4、http、 m3u8、rtsp不行。
四、vlc
https://www.cnblogs.com/tangchun/p/9686570.html
https://www.cnblogs.com/brooks-dotnet/p/5406110.html
https://github.com/mymbrooks/VLCAndroidDemo
https://blog.csdn.net/banketree/article/details/39575973
Vlc for android是一款开源安卓播放器,具备播放多媒体文件、光盘、设备以及网络流媒体协议等功能,支持ARMv7 CPU或一个x86 CPU的设备,所有播放控制特性都已经开发完整。
https://code.videolan.org/videolan/libvlc-android-samples/tree/master/
https://blog.csdn.net/lp8800/article/details/62221092
vlc 可以播放rtsp
流传输协议。我们最常见的有三种:
rtsp, hls, rtmp. Android系统的多媒体框架本身已经对除了rtmp以外的流媒体协议和视频格式都已经有所支持,但是问题在于支持的程度根据硬件平台不同行为可能有些许不同
https://www.jianshu.com/p/e744e5a8028c
对比ijkplayer和vlc,两个都是在ffmpeg基础上进行开发的媒体框架,各自有各自的长处。ijkplayer的性能表现和软硬解码的切换的灵活性十分好,并且支持SurfaceView, TextureView可更换渲染视频,并且可以选择使用OpenGLES渲染视频。ijkplayer解析和使用已有很多文章说明,其本质是SDL配合FFMPEG渲染解码。
https://blog.csdn.net/MX_Dream/article/details/86629642
五、使用VLC把MP4转成rtsp协议视频成功播放详细步骤
https://blog.csdn.net/qq_40015157/article/details/111238330
获得rtsp 视频源用于测试
六、编译问题
编译碰到的问题:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.lis.huapro-2/base.apk"],nativeLibraryDirectories=[/data/app/com.lis.huapro-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libijkffmpeg.so"
找不到对应的so文件。
原文链接:https://blog.csdn.net/cjm2484836553/article/details/78725483
ndk{
abiFilters("armeabi-v7a", "x86")
}
编译时包support.v4报错:
gradle.properties
import android.support.v4.app.Fragment;
//import androidx.fragment.app.Fragment;
写法变了,下载support-v4包
七、安卓模拟器
https://www.genymotion.com/download/