命令格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
1、参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项, 一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝
2、格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流
刚开始百度的
`ffmpeg -i "车载录像20150320.dav" -vcodec copy -acodec copy "车载录像20150320.mp4"`
但是我有个文件这样并不能转换成功
最后变成
ffmpeg -f h264 -i 1.dav -c copy test.mp4
就可以输出了
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
)
// ffmpeg -f h264 -i 141639-144539.dav -c copy test.mp4
func main() {
cmdArguments := []string{"-f", "h264", "-i", "1.dav", "-c", "copy","2.mp4"}
cmd := exec.Command("ffmpeg", cmdArguments...)
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Printf("command output: %q", out.String())
}
如果没有输入文件,那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用。作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。(by ternence.hsu)