python+ffmpeg截取视频段

ffmpeg下载地址:http://ffmpeg.zeranoe.com/builds/

下载Windows版本的FFmpeg

当视频文件路径含中文时出错,中文乱码。Python用subprocess调用乱码问题。

解决方法:视频文件路径编码:unicode

在利用subprocess.call时再encode一下cmd

md = ffmpegPath + ' -y -i ' + CurMediaPath.decode('utf-8') + ' -ss ' + videoStartTime + ' -t ' + videoEndTime +\

' -acodec copy -vcodec copy -async 1 ' + videoSaveDir.decode('utf-8')

subprocess.call(cmd.encode(sys.getfilesystemencoding()), shell=True)

CurMediaPath和videoSaveDir开始是utf-8,decode之后为unicode

ffmpegPath:ffmpegPath解压路径

-ss: 截取视频的开始时间

-t:截取视频的结束时间

指定路径时:

import subprocess

subprocess.call('C:/Users/liesmars/Desktop/QS02016/SRC/External/bin/ffmpeg.exe -y -i C:/Users/liesmars/Desktop/b.mp4 -ss 00:00:0.0 -t 00:00:40.0 -acodec copy -vcodec copy -async 1 C:/Users/liesmars/Desktop/b3.mp4')

print 'over'

剪切的同时,格式不变,音视频参数不变:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -acodec copy -vcodec copy -async 1 bjysxyt1.mp4

剪切的同时,音视频参数不变,只转换格式:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -acodec copy -vcodec copy -async 1 bjysxyt1.flv

剪切的同时,格式不变,只转换音视频参数:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -ab 56k -ar 44100 -b:v 2200k -r 29.97 -s 640x360 bjysxyt1.mp4

剪切的同时,既转换格式又转换音视频参数:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -ab 56k -ar 44100 -b:v 2200k -r 29.97 -s 640x360 bjysxyt1.flv

说明:

1.    -i表示输入文件;-acodec copy -vcodec copy 表示音频、视频不进行编解码,直接复制源视频;-ss表示起始时间,-t表示时长,格式均为“小时:分钟:秒”

2.    ffmpeg截取的视频不保留音频


你可能感兴趣的:(python+ffmpeg截取视频段)