1、Flash格式像其他格式进行转换

(1)、转换成wmv/asf格式

ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3

[-ab 音频码率] (输出的asf/wmv文件完整路径)

(2)、转换成mpeg格式

ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2

[-ab 音频码率] (输出的mpg文件完整路径)

(3)、转换成avi格式

ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码

率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径

2、ffmpeg的七个技巧

(1)、 音频转换

ffmpeg -i my_audio.wav my_audio.mp3-i 后为要转换的音频文件,my_audio.mp3为目的音频文件
(2)、视频转换
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i 后为源视频文件, -s 表示设置目标视频文件的

分辨率 my_video.flv为目的视频文件
(3)、从视频中截取图片
ffmpeg -i test.mpg image%d.jpg默认1s截取25张图片,可以通过-r设置每秒截取的图片数量- r fps 设置

帧率,也就是每秒截取图片的数量(默认25)
ffmpeg -i test.mpg -r 1 image%d.jpg这样子每1s截取1张图片 还可以设置截取间隔,起止 -ss 设定时间

位置,语法:hh:mm:ss[.xxx] -t 时长:限制转码/捕获视频的时间,语法:hh:mm:ss[.xxx]
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png在第10秒开始,以每秒截取

图片的速度,截取5秒时长的图片
(4)、从视频中采集音频
ffmpeg -i video.avi -f mp3 audio.mp3-f 强制选择格式
ffmpeg -i video.avi -vn audio.mp3-vn 取消截取视频(也就是只输出音频文件)
(5)、创建截屏视频
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg0.0 是你X11 server的屏幕

显示号码,和DISPLAY一样样的.
此条命令以每秒25帧的速率来截取wxga屏幕视频,当然这里可以用-s 来设置视频分辨率,输出文件

是/tmp/outputFile.mpg。

(6)、用图片制作视频
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
将`img001.jpg’, `img002.jpg'这种顺序排列的图片文件转制作为视频
(7)从webcam中截取视频
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
同时截取音频和视频:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg /dev/video0为

视频设备 /dev/dsp为音频设备

[D:\software\MediaCoder\codecs\ffmpeg.exe, -i, d:\test\a.mp4, -ab, 64, -ac, 2, -ar, 22050,

-b, 230, -r, 29.97, -y, d:\test\b.flv]

package pkg;  
import java.io.File;  
import java.util.ArrayList;  
import java.util.List;  
public class VideoToVoice {  
    public static List<String> L=new ArrayList<String>();  
    //获取一个文件夹路径dir下所有的子目录地址(子目录不是文件夹形式)  
    public static void listDirectory(File dir) {  
        if (!dir.exists()) {  
            throw new IllegalArgumentException("目录" + dir + "不存在");  
        if (!dir.isDirectory()) {  
            throw new IllegalArgumentException(dir + "不是目录");  
        File[] files = dir.listFiles();// 返回的是直接子目录的抽象  
        if (files != null && files.length > 0) {  
            for (File file1 : files) {  
                if (file1.isDirectory()) {  
                    listDirectory(file1);  
                } else {  
                    L.add(file1.toString());  
    private static boolean processMP3(String path) {  
        String voiceName = path.substring(path.lastIndexOf("\\") + 1,  
                path.lastIndexOf("\\") + 3);  
        System.out.println(voiceName);  
        switch (voiceName) {  
        case "愤怒":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "伤心":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "惊讶":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "快乐":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "恐惧":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "厌恶":  
            ffmpeg_process(voiceName, path);  
            break;  
        case "自然":  
            ffmpeg_process(voiceName, path);  
            break;  
        default:  
            break;  
        return true;  
    public static boolean ffmpeg_process(String Name, String path) {  
        String voiceNameNum = path.substring(path.lastIndexOf("\\") + 1,  
                path.indexOf("."));  
        String voiceName = path.substring(path.lastIndexOf("\\") + 1,  
                path.lastIndexOf("\\") +3);  
        String number = voiceNameNum.replaceAll(voiceName, "");  
        System.out.println(number);  
        int num = Integer.parseInt(number);  
        System.out.println(num);  
        List<String> commend = new java.util.ArrayList<String>();  
        commend.add("ffmpeg.exe");  
        commend.add("-i");  
        commend.add(path);  
        commend.add("-vn");  
        commend.add("D:\\迅雷下载\\多模态资源\\视频中截取的音频" +"\\"+ Name + "\\" + Name + num  
                + ".mp3");  
        System.out.println(commend);  
        try {  
            ProcessBuilder builder = new ProcessBuilder();  
            builder.command(commend);  
            builder.start();  
            return true;  
        } catch (Exception e) {  
            e.printStackTrace();  
            return false;  
    public static void main(String[] args) {  
        listDirectory(new File("D:\\迅雷下载\\多模态资源\\人脸表情"));  
        System.out.println(L.size());  
        for (int i = 0; i < L.size(); i++) {  
            System.out.println(L.get(i));  
            processMP3(L.get(i));  
//      processMP3("D:\\迅雷下载\\多模态资源\\人脸表情\\伤心\\伤心10.avi");  
                    首先,需要在网上下载一个方法ffmpeg.exe工具来处理视频、音频的转换。1、Flash格式像其他格式进行转换(1)、转换成wmv/asf格式ffmpeg-i(要转换的flv文件完整路径)-fasf-vcodec(wmv1或wmv2)[-b视频码率]-acodecmp3[-ab音频码率](输出的asf/wmv文件完整路径)(2)、转换成mp...
				
原文地址:http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 本地化的文章:http://www.html5rocks.com/zh/tutorials/getusermedia/intro/ 其已经有文版本的本地化内容,点击 本地化 下面的文 (简体)即可查看文翻译,但是其的演示也是不能运行,另外,...
在这段代码,我们首先读取了视频文件,然后使用 `audio` 属性提取视频文件音频流,最后使用 `ffmpeg.output` 函数将音频流保存为音频文件。 注意,在使用 ffmpeg 库之前,需要确保已经安装了 ffmpeg 软件。可以使用以下命令来安装 ffmpeg: sudo apt-get install ffmpeg 此外,还可以使用 Python 的其他库来提取音频,例如 PyAV、MoviePy 等。 cjs68: 不是的,官方英文解释是这样,你再理解理解 The GOGC variable sets the initial garbage collection target percentage. A collection is triggered when the ratio of freshly allocated data to live data remaining after the previous collection reaches this percentage. The default is GOGC=100. Setting GOGC=off disables the garbage collector entirely. The runtime/debug package's SetGCPercent function allows changing this percentage at run time. See https://golang.org/pkg/runtime/debug/#SetGCPercent. golang GC相关调试参数 BJUT_creat2012: 什么意思呢,就是GOGC默认值是100,举个例子:你程序的上一次GC完,驻留内存是100MB,由于你GOGC设置的是100,所以下次你的内存达到200MB的时候就会触发一次GC,如果你GOGC设置的是200,那么下次你的内存达到300MB的时候就会触发GC。 不是这个意思吧? 100 -> 200 -> 400吧?