使用python简单免费转换视频格式


起因是我需要将flv格式的文件转换为mp4
但是找到的视频转换软件都不好使,最后采用的方法是在anaconda中用python语句利用ffmpy和FFmpeg进行转换
其他格式的视频应该也可以互相转换,有需要的话可以尝试这种方法

一. 配环境ffmpeg,安装ffmpy

打开anaconda的命令提示符,依次执行命令

conda install ffmpeg
pip install ffmpy

二. 解决报错:RemoveError: ‘requests’ is a dependency of conda and cannot be removed from conda’s operating environment.

如果没报错就去执行第三步

我最后成功的解决方法是执行

conda update --force conda

但也有人说用以下几种方法成功的,对我来说没用,放这儿只供参考:

  • conda update conda
  • conda remove -n *** --all
  • requests包是通过pip安装的,用pip解决requests

重新执行第1步中的语句

三. 执行python代码

import ffmpy
# 需要转换格式的视频文件,文件真实存在
source_file = r"G:\******.flv"
# 转换成功后的视频文件,文件夹真实存在,不会自动创建
sink_file = r"G:\*******.mp4"

ff = ffmpy.FFmpeg(
     inputs = {source_file: None},
     outputs = {sink_file: None})
ff.run()

四. 结束

在这里插入图片描述
看到这个就代表执行成功
执行完毕后到sink_file对应位置去找就可以了

五. 命令行格式转换

自己调整以下语句,即可

ffmpeg -i 原文件及其路径.flv -c copy 输出文件及其路径.mp4

在这里插入图片描述
似乎也可以:

ffmpeg -i input.flv -vcodec copy -acodec copy output.mp4

六. ffmpy支持的格式

支持的格式
ASF
AVI
BFI[7]
IFF[8]
RL2[9]
FLV
MXF, Material eXchange Format, SMPTE 377M
Matroska
Maxis XA[10]
MSN Webcam stream[11]
MPEG transport stream
TXD[6]
OMA[12]
GXF, General eXchange Format, SMPTE 360M
mov,mp4,m4a,3gp,
应该都可以

七. 出现问题

错误

有点伤心

FFRuntimeError: `ffmpeg -i ‪aaa.flv ‪bbb.mp4` exited with status 1

STDOUT:


STDERR:


在这里插入图片描述
感觉像是内存不足,没解决掉(2022.1.24现在知道原因了),网上也找不到资源,最后是在anaconda prompt中用命令行语句转的

解决方法一 使用命令行

放弃,使用命令行转视频格式

解决方法二 路径有误

出现上面问题的原因是直接从文件对象名称复制路径的时候,路径最前面有可能自动加一个肉眼不可见的符号,在代码中的路径G:\…前按一下delete,如果发现没有删掉任何东西,那就是肉眼不可见的符号"\u202a"被删掉了,之后代码就可以运行了。
在这里插入图片描述

解决方法三 设置executable参数

评论区大佬提出的,设置executable参数,放置ffmpeg.exe地址

ff = ffmpy.FFmpeg(
    executable = r'D:\Programs\Anaconda3\Library\bin\ffmpeg.exe',
    inputs = {source_file: None},
    outputs = {sink_file: None})

我的ffmpeg.exe地址是这样的,不清楚的话可以在电脑中搜索ffmpeg.exe这个文件,就能搜出来

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值