视频转音频

视频转音频

1. maven依赖

<!--视频&音频处理-->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5</version>
</dependency>

2. 实例

    /**
     * 视频(mp4|avi)转音频(MP3|WAV)
     * WAV要求-
     * 1.音频编码:pcm_s16le
     * 2.单声道
     * 3.音频采样率: 16000hz
     * 4.比特率 256kbps
     * @param videoPath
     * @param audioPath
     * @return
     */
    public static boolean convertVideoToAudio(String videoPath, String audioPath){
        boolean flag = false;
        String format = "wav";  // 转写的格式
        FFmpegFrameGrabber ffg = new FFmpegFrameGrabber(videoPath);
        Frame frame = null;
        FFmpegFrameRecorder ffr = null;
        try{
            ffg.start();
            ffr = new FFmpegFrameRecorder(audioPath, ffg.getAudioChannels());
            ffr.setFormat(format);  // 音频编码格式
//            ffr.setSampleRate(ffg.getSampleRate()); // 音频采样率
            ffr.setSampleRate(16000); // 音频采样率
            ffr.setTimestamp(ffg.getTimestamp());  // 音频时长
            ffr.setAudioChannels(1);  // 单声道
            ffr.setVideoBitrate(256); // 比特率
            ffr.setAudioQuality(0);  // 音频质量
            ffr.start();
            int index = 0;
            while (true){
                frame = ffg.grab();
                if (frame == null){
                    break;
                }
                if (frame.samples != null){
                    ffr.recordSamples(frame.sampleRate, frame.audioChannels, frame.samples);
                }
                index ++;
            }
            ffr.stop();
            ffr.release();
            ffg.stop();
            flag = true;
        }catch (Exception e){
            e.printStackTrace();
            log.error("视频转音频({}->{})异常:{}", videoPath, audioPath, String.valueOf(e));
        }
        log.info("视频转音频({}->{}):{}", videoPath, audioPath, flag);
        return flag;
    }

    public static void main(String[] args) {
        convertVideoToAudio("F:\\test\\video\\tmp\\10.mp4", "F:\\test\\video\\mp3\\10.wav");
    }

image

image


posted @   爱编程_喵  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
jQuery火箭图标返回顶部代码

jQuery火箭图标返回顶部代码

滚动滑动条后,查看右下角查看效果。很炫哦!!

适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.

点击右上角即可分享
微信分享提示