Android视频处理技术
1.录制rtsp视频
ffmpeg -i rtsp://admin:admin1234@172.20.12.198:554/ -vcodec copy out.avi
2.android给视频加水印的
A:ffmpeg -i E:\out.avi -i E:\bbb.png -filter_complex "overlay=5:5" E:\out2.mp4
显示在视频的左上角overlay参数为 overlay=0:0
显示在右上角为 overlay= main_w-overlay_w:0
显示在右下角为 overlay= main_w-overlay_w:main_h-overlay_h
显示在左下角为 overlay=0: main_h-overlay_h
B:高效方案------mediacodec硬解码,+gpuimage添加滤镜效果,再编码复用
重点:MediaExtractor,MediaCodec,MediaMuxer
https://www.zhihu.com/question/49160322/answer/114587604
http://jingpin.jikexueyuan.com/article/47378.html
http://ossrs.net:1985/console/ng_index.html#/streams?host=172.20.12.229&port=1985
libstream : http://blog.csdn.net/dyc941126/article/details/18811631
https://github.com/spex66
http://download.csdn.net/detail/fyf_0215/7992757
之前一直存在一个问题:大码流时,播放会卡。原因应该是#define BANK_SIZE 150000 这个宏的值,太小了。改大它试一下,应该可以解决掉。
ByteStreamMemoryBufferSource
作者:姚冬链接:https://www.zhihu.com/question/49160322/answer/114587604来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
自己搭建一个直播系统吧
服务端用 SRS(Simple Rtmp Server),在这里下载simple-rtmp-server**需要Linux系统最好是Ubuntu,装个Ubuntu虚拟机就行了在Linux里,解压缩SRS 安装包,运行
sudo ./INSTALL> sudo /etc/init.d/srs start
一个RTMP的媒体服务器就运行起来了,无需改配置,默认端口是 1935
推流端用obs-studio,在这里下载Open Broadcaster Software**在设置->串流 输入 URL rtmp://<your ubuntu ip>/mylive在 来源 里指定一个视频源,测试的话用窗口捕获就行了
播放测试用 VLC 在这里下载http://www.videolan.org/vlc/**打开网络串流,输入你刚才推流的 URL 即可。
开发播放测试通过后,就可以自己开发App来播放发布直播流了推荐用 librtmp,纯C实现的RTMP协议封装,用在Android上需要用NDKGitHub - yixia/librtmp: librtmp for Android and iOS**这里有做好的 NDK makefile
https://github.com/saki4510t/UVCCamera or https://github.com/openxc/android-webcam?