首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在二进制状态下使用Python编辑视频元数据

如何在二进制状态下使用Python编辑视频元数据
EN

Stack Overflow用户
提问于 2020-03-25 03:26:53
回答 2查看 382关注 0票数 0

我想下载一个视频文件从互联网使用请求库和保存之前,对视频的元数据。

代码语言:javascript
复制
import requests

url = 'https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_5mb.mp4'

r = requests.get(url, stream=True)

with open('video.mp4', 'wb') as file:
     file.write(r.content)

我只想在保存文件之前将元数据更改为视频。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-25 03:37:40

我觉得这不可能。我的方法是先下载视频,然后考虑使用像tagpymutagen这样的库。

我推荐mutagen,因为我发现它有一个很好的文档

参见此处关于安装步骤mutagen

使用mutagen的示例代码

代码语言:javascript
复制
>>> import mutagen
>>> mutagen.File("11. The Way It Is.ogg")
{'album': [u'Always Outnumbered, Never Outgunned'],
 'title': [u'The Way It Is'], 'artist': [u'The Prodigy'],
 'tracktotal': [u'12'], 'albumartist': [u'The Prodigy'],'date': [u'2004'],
 'tracknumber': [u'11'],
>>> _.info.pprint()
u'Ogg Vorbis, 346.43 seconds, 499821 bps'
>>>

然后,要更改标题,只需访问字典键并更改它的值。

代码语言:javascript
复制
from mutagen.flac import FLAC

audio = FLAC("example.flac")
audio["title"] = u"An example"
audio.pprint()
audio.save()
票数 2
EN

Stack Overflow用户

发布于 2021-06-16 15:56:37

为了建立AzyCrw4282 4282的答案,在保存文件之前,可以使用诱变剂来完成您想要的操作。

mutagen.File()的API文档声明它正在寻找一个filething,它是一个“文件名或类似文件的对象”。这意味着您可以将其缓冲到内存中的位置,使用诱变剂修改元数据,然后将其保存到磁盘中。请注意,整个二进制响应将在内存中,这可能会导致问题取决于您的可用系统资源。

代码语言:javascript
复制
from io import BytesIO

import requests
import mutagen

with requests.get(url, stream=True) as r:
    r.raise_for_status()
    buf = BytesIO()
    for chunk in r.iter_content(chunk_size=8192): 
        if chunk: 
            buf.write(chunk)
    buf.seek(0)
    video = mutagen.File(buf)
    # ... do your modifications
    with open('/your/file/path.mp4', 'wb') as f:
        f.write(buf.getbuffer())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60842606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档