Java rtsp转flv

依赖

xml 复制代码
    <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv</artifactId>
            <version>1.4.3</version>
    </dependency>

完整代码

java 复制代码
public static void main(String[] args) {

        String fileURL = "rtsp://admin:zr123456@192.168.1.199/Streaming/tracks/0101/?starttime=20240620T010203Z&endtime=20240620T010213Z";
        String outFile = "C:\\Users\\admin\\Desktop\\a.flv";

        FFmpegFrameRecorder recorder = null;
        FFmpegFrameGrabber grabber = null;

        try{
            grabber = FFmpegFrameGrabber.createDefault(fileURL);
            grabber.setOption("rtsp_transport", "udp");
            grabber.start();



            int imageWidth = grabber.getImageWidth();
            int imageHeight = grabber.getImageHeight();

            recorder = new FFmpegFrameRecorder(outFile, imageWidth, imageHeight);
            recorder.setSampleRate(grabber.getSampleRate());
            recorder.setAudioChannels(grabber.getAudioChannels());
            recorder.setInterleaved(true);
            recorder.setVideoBitrate(2500000);
            recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
            recorder.setFormat("flv");
            recorder.setFrameRate(grabber.getFrameRate());
            recorder.setGopSize((int) (grabber.getFrameRate() * 2));
            recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P);

            recorder.start();

            // 处理视频帧
            Frame frame;
            while (true) {
                frame = grabber.grabFrame();
                if (frame == null) {
                    break; // 没有更多帧
                }
                recorder.record(frame);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 确保资源被释放
            if (recorder != null) {
                recorder.stop();
            }
        }
    }
相关推荐
认真的酒窝5 小时前
自己动手开发编译器(十一)语义分析
java·开发语言
wbs_scy6 小时前
Linux C++ 高并发编程:线程池全链路深度解析,从原理到手撕实现
java·开发语言
JAVA面经实录9176 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
Full Stack Developme8 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
程序员老油条10 小时前
WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境
java·windows·docker·wsl2
shushangyun_11 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..11 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
学渣超11 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
掉鱼的猫11 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc
带刺的坐椅12 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·ai·llm·agent·solon-ai