linux搭建ssr流媒体播放器,java代码进行推流

仅供学习

首先得去liunx安装ssr并搭建服务器,基于ffmpeg进行的推流。

git上拉去源码:

git clone https://github.com/ossrs/srs.git

进入你git到本地的文件地址:

cd ./srs/trunk/ 

然后编译srs:

./configure && make

编译完成就可以运行srs:

./objs/srs -c conf/srs.conf

可以查看运行状态:

./etc/init.d/srs status

然后浏览器访问:linux的ip+端口(192.168.1.27:8080)

这样就启动成功了。

SRS默认端口是8080,可以修改配置文件更改conf/srs.conf的配置

 这样就可以进行推流了

导入maven依赖

org.bytedecojavacv-platform1.5.7

可以使用 JavaCV 提供的类和方法来进行对 FFmpeg 的操作,包括视频的读取、解码、编码、剪切、合并、转码等。我这儿就推流。

   // 视频源private static FFmpegFrameGrabber ffmpeg=null;// 推送private static FFmpegFrameRecorder recorder=null;/*** api进行视频推流* @param inputUrl 推流输入地址* @param outputUrl 推流目标地址*/public static void startSteam(String inputUrl,String outputUrl){try {// 初始化ffmpeg实例ffmpeg = new FFmpegFrameGrabber(inputUrl);ffmpeg.start();// 初始化recoder实例recorder=new FFmpegFrameRecorder(outputUrl,ffmpeg.getImageWidth(),ffmpeg.getImageHeight());// 设置格式和编码recorder.setFormat("flv");recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);// 设置比特率(kbps)recorder.setVideoBitrate(200);// 设置声道recorder.setAudioChannels(1);// 开始推流recorder.start();Frame frame;while ((frame=ffmpeg.grab())!=null){recorder.record(frame);}}catch (Exception e){e.printStackTrace();}finally{// 释放资源if (recorder!=null){try {recorder.close();recorder.release();}catch (Exception e){e.printStackTrace();}}if (ffmpeg!=null){try {ffmpeg.close();ffmpeg.release();}catch (Exception e){e.printStackTrace();}}}}

流的名字随便取,

然后用ffplay.exe拉取

命令:

ffplay.exe rtmp://127.0.0.1:1935/live/home

效果图

 成功,(找不到元素)有个报错是因为我没有装音频输出设备。

当然你也可以用VLC视频工具去获取流,然后播放


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部