当前位置: 首页 > 知识库问答 >
问题:

在python中使用ffmpeg获取视频时长

卓瀚
2023-03-14

我已经在PC上使用pip ffprobe命令安装了ffprobe,并从这里安装了ffmpeg。

然而,我仍然在运行这里列出的代码时遇到麻烦。

我尝试使用下面的代码,但没有成功。

SyntaxError: Non-ASCII character '\xe2' in file GetVideoDurations.py
on line 12, but no encoding declared; see
http://python.org/dev/peps/pep-0263/ for details

有人知道怎么了吗?我没有正确引用目录吗?是否需要确保.py和视频文件位于特定位置?

import subprocess

def getLength(filename):
    result = subprocess.Popen(["ffprobe", "filename"],
    stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
    return [x for x in result.stdout.readlines() if "Duration" in x]

fileToWorkWith = ‪'C:\Users\PC\Desktop\Video.mkv'

getLength(fileToWorkWith)

如果这个问题有点基本的话,我很抱歉。所有我需要的是能够迭代一组视频文件,并获得他们的开始时间和结束时间。

谢谢!

共有1个答案

伯晨
2023-03-14

不需要遍历ffprobe的输出。有一个简单的命令只返回输入文件的持续时间:

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 <input_video>

您可以使用以下方法来获取持续时间:

def get_length(input_video):
    result = subprocess.run(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', input_video], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    return float(result.stdout)
 类似资料:
  • 本文向大家介绍Java通过调用FFMPEG获取视频时长,包括了Java通过调用FFMPEG获取视频时长的使用技巧和注意事项,需要的朋友参考一下 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,li

  • 我想执行FFmpeg命令,从应用程序的资产文件夹中的视频中提取MP3格式的音频。有关更多信息,请参阅http://writingminds.github.io/ffmpeg-android-java/ 但是我犯了一个错误。请提出解决方案。 JAVA木卫一。IOException:运行exec()时出错。命令:[/data/data/com.example.bansi_vasundhara.vide

  • 在我的网站,有上传视频(只有mp4视频)功能,然后结合。对于合并,我使用了Mp4Box,如果我们想要合并所有的mp4视频,这些视频必须相同的度数、比特率、编解码、采样等,所以在上传mp4视频时,我们设置了常数维度和其他细节,如FFMPEG-I Test.mp4-R 25-S 640x360-AR 48000-Acodec copy-F MP4-Vcodec libx264-Vpre Default

  • 我想在背景图像上覆盖透明视频。我有一个视频,其中上半部分是RGB对象,下半部分是阿尔法掩码。 现在,为了制作这个,我执行以下步骤:

  • 在我的网络应用程序中,用户应该能够上传自己的视频(任意一种格式)。我正在使用ffmpeg对视频进行编码。mp4和。flv使用命令: ffmpeg-iuservid.whateveroutput.mp4output.flv 当ffmpeg对视频进行编码时,它会加载到用户页面上的flowplayer中。但flowplayer总是说“找不到文件”,因为ffmpeg编码尚未完成。 是否有可能在某个播放器中