Windows10配置FFmpeg和使用FFmpeg截取视频流视频

第一部分:Windows10配置FFmpeg

简介:FFmpeg是一个功能强大的多媒体处理工具(用于录制、转换和播放音频和视频)。可以进行转换、剪辑、拼接、过滤等操作。

1、下载FFmpeg工具(分Windows和Linux其他)

Download FFmpeghttps://ffmpeg.org/download.html

2、下载full-share版本

full版本是完整构建,shared版本添加了头文件和库,用来学习和调试程序。我选择ffmpeg-release-full-shared.7z版本。

3、下载并解压ffmpeg-7.0.2

4、配置环境变量

我的电脑--->属性(右键)--->高级系统配置--->高级--->环境变量--->path--->编辑--->新增--->D:\Program Files (x86)\ffmpeg-7.0.2-full_build-shared\bin

5、查看ffmpeg版本

启动cmd,在终端执行:ffmpeg -version

第二部分:大华摄像机的RTMP视频流分割

(每隔 15秒切分视频并存储)

java 复制代码
import java.io.BufferedReader;
import java.io.InputStreamReader;

import java.util.Timer;
import java.util.TimerTask;

/**
 * 视频流地址实现每隔 15秒切分视频并存储
 * 视频流格式:rtmp
 */
public class DaHuaRtmpVideoStreamSplitter {

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // 切分视频流并存储的逻辑
                // 存视频开始~结束时间【文件名】
                try {
                    String inputUrl = "http://192.168.5.188:80/flv?port=1935&app=live&stream=test";
                    String outputFileName = "video_" + System.currentTimeMillis() + ".mp4";
//                    String command = "D:\\Program Files (x86)\\ffmpeg-7.0.2-full_build-shared\\bin\\ffmpeg.exe -i " + inputUrl + " -c copy -t 15 " + outputFileName;
                    String command = "D:\\Program Files (x86)\\ffmpeg-7.0.2-full_build-shared\\bin\\ffmpeg.exe -i " + inputUrl + " -c:v copy -c:a aac -t 15 " + outputFileName;
                    Process process = Runtime.getRuntime().exec(command);

                    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
                    String line;
                    while ((line = reader.readLine())!= null) {
                        System.out.println(line);
                    }

                    int exitCode;
                    try {
                        exitCode = process.waitFor();
                    } catch (InterruptedException e) {
                        System.out.println("等待进程结束被中断!");
                        e.printStackTrace();
                        return;
                    }

                    if (exitCode!= 0) {
                        System.out.println("FFmpeg 执行出错!退出码: " + exitCode);
                    } else {
                        System.out.println("视频切分和存储成功: " + outputFileName);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }, 0, 15 * 1000);  // 15 秒 = 15 * 1000 毫秒
    }
}
相关推荐
知识领航员27 分钟前
2026年精选4款音频处理软件:Adobe Audition领衔,蘑兔AI音乐紧随其后
adobe·音视频
云天AI实战派1 小时前
ChatGPT/API 调用故障排查指南:Realtime 音频、智能体浏览器操作与 AI 编码代理全流程修复手册
人工智能·chatgpt·音视频
celebrateyang2 小时前
一个功能比较完整的在线视频工具站:freesavevideo.online 使用体验
音视频·下载
EasyDSS2 小时前
私有化视频会议系统/视频高清直播点播EasyDSS构筑智慧校园安全可控全场景音视频中枢
安全·音视频
irpywp3 小时前
平台禁下载、格式不兼容、剪辑太麻烦,Media Downloader:mac 原生媒体下载工具,一站式解决视频下载、转码、裁剪、管理难题
macos·开源·github·音视频·媒体
largecode3 小时前
能不能让座机号码显示“XX公司”那样的认证名称?申请号码认证方法
经验分享·笔记·音视频·课程设计·oneapi·segmentfault·微信开放平台
美狐美颜sdk4 小时前
美颜SDK开发难点有哪些?Android/iOS美颜SDK接入
人工智能·音视频·直播美颜sdk·视频美颜sdk·美狐美颜sdk
blevoice5 小时前
JL杰理AC696N开发板上调试蓝牙音质优化:开启AAC高清音频支持
单片机·ffmpeg·音视频·aac·ac6966b蓝牙音响方案·杰理智能音箱开发·杰理ac6965e蓝牙音频开发
Elastic 中国社区官方博客5 小时前
jina-embeddings-v5-omni:用于文本、图像、音频和视频的 embeddings
大数据·人工智能·elasticsearch·搜索引擎·ai·音视频·jina
EasyGBS5 小时前
智慧工地、明厨亮灶、平安校园……国标GB28181视频平台EasyGBS凭什么成为ToB视频方案的“万能基座”?
网络·音视频