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

编程知识 更新时间:2023-05-02 13:58:11

目录

  • 一. 配环境ffmpeg,安装ffmpy
  • 二. 解决报错:RemoveError: ‘requests’ is a dependency of conda and cannot be removed from conda’s operating environment.
  • 三. 执行python代码
  • 四. 结束
  • 五. 命令行格式转换
  • 六. ffmpy支持的格式
  • 七. 出现问题
    • 错误
    • 解决方法一 使用命令行
    • 解决方法二 路径有误
    • 解决方法三 设置executable参数

起因是我需要将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这个文件,就能搜出来

更多推荐

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

本文发布于:2023-04-26 11:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/bad99b817d3f4c71796e68365750972d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:视频格式   简单   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 105348文章数
  • 26843阅读数
  • 0评论数