通过ffmpeg实现rtsp rtmp rtmps 推流

安卓端推流直接引用 implementation 'com.arthenica:mobile-ffmpeg-full:4.4' 包

记得添加网络权限

复制代码
<uses-permission android:name="android.permission.INTERNET" />

基本方法:

···

复制代码
public static long  executionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.takePicture).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            long executionId = FFmpeg.executeAsync("-i rtsp://admin:yoseen2018@192.168.1.202/h264/ch1/main/av_stream -acodec copy -f rtsp -rtsp_transport tcp rtsp://123.55.106.133:554/client/02/cam_1", new ExecuteCallback() {
                //  long executionId = FFmpeg.executeAsync("-i file1.mp4 -c:v mpeg4 file2.mp4", new ExecuteCallback() {

                @Override
                public void apply(final long executionId, final int returnCode) {
                    if (returnCode == RETURN_CODE_SUCCESS) {
                        Log.i(Config.TAG, "Async command execution completed successfully.");
                    } else if (returnCode == RETURN_CODE_CANCEL) {
                        Log.i(Config.TAG, "Async command execution cancelled by user.");
                    } else {
                        Log.i(Config.TAG, String.format("Async command execution failed with returnCode=%d.", returnCode));
                    }
                }
            });
        }
    });

    findViewById(R.id.takeStop).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FFmpeg.cancel(executionId);
        }
    });
}

···

注意:

1、 本地rtsp 转码 rtmp 推流命令:

"-i rtsp://admin:yoseen2018@192.168.1.202/h264/ch1/main/av_stream -acodec copy -f flv rtmp://192.168.1.155:1935/live/01"

2、 本地rtsp 推流 rtsp的udp 推流命令:

"-i rtsp://admin:yoseen2018@192.168.1.202/h264/ch1/main/av_stream -acodec copy f rtsp rtsp://192.168.1.155:1935/live/01"

3、本地rtsp 推流 rtsp的TCP推流命令:

"-i rtsp://admin:yoseen2018@192.168.1.202/h264/ch1/main/av_stream -acodec copy -f rtsp -rtsp_transport tcp rtsp://192.168.1.155:1935/live/01"

作者:一号读者

链接:https://www.jianshu.com/p/bdbfe5290ae1

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐
2501_916008895 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
Coder_Boy_6 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
玉梅小洋6 小时前
Windows 10 Android 构建配置指南
android·windows
invicinble6 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟6 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖6 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
Libraeking7 小时前
视觉篇:Canvas 自定义绘图与高级动画的华丽圆舞曲
android·经验分享·android jetpack
qq_12498707538 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
Coder_Boy_8 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Mr_sun.8 小时前
Day06——权限认证-项目集成
java