使用ffmpeg对视频进行转码(支持浏览器播放)

在开发中,算法保存的mp4视频文件通过路径打开该视频发现视频播放不了,需要转码进行播放。使用java代码进行转码。代码如下,inputFilePath是转之前的视频路径,outputFilePath是转之后的视频路径。ffmpeg命令中libx264也可以改为其它的格式,例如:h264。

java 复制代码
   public void conversion(String inputFilePath, String outputFilePath){
        // 构建FFmpeg命令
        String[] command = {"ffmpeg", "-i", inputFilePath, "-c:v", "libx264", "-preset", "ultrafast", "-c:a", "aac", "-strict", "experimental", "-movflags", "faststart", outputFilePath};
        try {
            // 执行FFmpeg命令
            ProcessBuilder processBuilder = new ProcessBuilder(command);
            Process process = processBuilder.start();
            // 获取FFmpeg输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            // 等待转换完成
            int exitCode = process.waitFor();
            System.out.println("Conversion exited with code " + exitCode);
            // 关闭读取器
            reader.close();
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }

注意使用ffmpeg需要安装ffmpeg所需要的环境。在windows中和linux中都需要。如果已经安装ffmpeg但是视频还会转换报错, 例如

这个问题是找不到libx264环境,建议卸载重装ffmpeg,使用以下命令。将ffmpeg卸载了之后再conda 重新安装(用conda,因为conda会自动下载配置所需要的依赖库):

bash 复制代码
conda uninstall ffmpeg
conda install -c conda-forge ffmpeg
相关推荐
二等饼干~za8986684 小时前
豆包GEO优化源码开发全解析:技术架构、实现逻辑与实操指南
数据库·sql·重构·架构·mybatis·音视频
枳实-叶4 小时前
嵌入式音视频开发——视频码率与码率控制技术
音视频
小鹿软件办公5 小时前
Solong 音频转换器:免费批量提取视频中的音频文件
音视频·免费音频播放器
EasyCVR5 小时前
插件模块化集成设计:花屏蓝屏画面模糊检测...EasyCVR视频质量诊断功能的技术与落地逻辑
服务器·数据库·音视频·视频质量诊断
琪伦的工具库5 小时前
批量视频根据参数重命名工具使用指南
ffmpeg·音视频
琪伦的工具库6 小时前
批量视频分割软件使用指南
音视频
txp玩Linux6 小时前
嵌入式音视频:语音识别开源项目
人工智能·音视频·语音识别
沃普天科技6 小时前
IF8032芯片TYPE C全功能输出支持C口显示器,支持AR眼镜 显示,支持接扩展坞,支持PD100W 4K144
游戏·智能手机·计算机外设·电脑·ar·音视频·显示器
AI服务老曹6 小时前
企业级视频中台的协议兼容性架构:基于 GB28181 与 RTSP 的全品牌设备统一接入方案
架构·音视频