html5 video 添加MP4文件损坏?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html5 video 添加MP4文件损坏?相关的知识,希望对你有一定的参考价值。

参考技术A MP4文件损坏需要用工具修复后才能嵌入到video视屏使用,修复方法:
1、先把文件复制出来。
2、首先安装一个播放器,试试能不能播放,这个本地播放器支持的格式较多,如果能放,把能放的片段截取下来,选择无损视频保存。
2、如果不能的话用格式工厂转下码。这只是尝试,如果还不行,文件损坏的太严重,就没办法了。
参考技术B 使用视频修复工具试试 或者换一个格式播放 有的时候可能因为视频在压缩的时候 删除了一些兼容代码 参考技术C 使用视频修复工具试试 或者换一个格式播放 有的时候可能因为视频在压缩的时候 删除了一些兼容代码。

如何使用 beautifulsoup 从(可能)损坏的 html 中过滤掉 .mp3 链接? (JSON)

【中文标题】如何使用 beautifulsoup 从(可能)损坏的 html 中过滤掉 .mp3 链接? (JSON)【英文标题】:How do I filter out .mp3 links using beautifulsoup from (possibly) broken html? (JSON) 【发布时间】:2018-01-04 13:07:12 【问题描述】:

我想构建一个小工具来帮助家庭成员从网站上下载播客。

为了获得指向文件的链接,我首先需要将它们过滤掉(使用 bs4 + python3)。 这些文件在这个网站上(爱沙尼亚语):Download Page "Laadi alla" = "Download"

到目前为止,我的代码如下: (大部分来自***上的示例)

from bs4 import BeautifulSoup

import urllib.request
import re

url = urllib.request.urlopen("http://vikerraadio.err.ee/listing/mystiline_venemaa#?page=1&pagesize=902&phrase=&from=&to=&path=mystiline_venemaa&showAll")
content = url.read()
soup = BeautifulSoup(content, "lxml")

links = [a['href'] for a in soup.find_all('a',href=re.compile('http.*\.mp3'))]
print ("Links:", links)

不幸的是,我总是只得到两个结果。 输出:

Links: ['http://heli.err.ee/helid/exp/ERR_raadiouudised.mp3', 'http://heli.err.ee/helid/exp/ERR_raadiouudised.mp3']

这些不是我想要的。 我最好的猜测是该页面的 html 和 bs4 有点损坏/解析器无法找到其他任何东西。 我尝试了不同的解析器,结果没有任何变化。 也许我也做错了什么。

例如,我的目标是将各个链接放在列表中。 我稍后会自己过滤掉所有重复/不需要的条目。

简单说明一下,以防万一:这是一个公共广播,所有内容都是合法托管的。

我的新代码是:

for link in soup.find_all('d2p1:DownloadUrl'): 
    print(link.text) 

我很不确定标签是否被正确选择。

这个问题中列出的示例都没有真正起作用。有关工作代码,请参阅下面的答案。

【问题讨论】:

页面是使用 JavaScript 呈现的,请参阅我对***.com/questions/45259232/… 的回答,了解如何抓取使用 JavaScript 呈现的网页 【参考方案1】:

请注意,页面中的列表是通过API 连接的。因此,我建议您请求具有 200 个 .mp3 链接的 API 链接,而不是请求 HTML 页面。

请按照以下步骤操作:

    请求 API 链接,而不是 HTML 页面链接 检查响应,它是 JSON。因此,提取您需要的字段 帮助您的家人,无时无刻 :)

解决方案

import requests, json
from bs4 import BeautifulSoup

myurl = 'http://vikerraadio.err.ee/api/listing/bypath?path=mystiline_venemaa&page=1&pagesize=200&phrase=&from=&to=&showAll=false'
r = requests.get(myurl)
abc = json.loads(r.text)

all_mp3 = 
for lstngs in abc['ListItems']:
    for asd in lstngs['Podcasts']:
        all_mp3[asd['DownloadUrl']] = lstngs['Header']

all_mp3

all_mp3 是您所需要的。 all_mp3 是一个字典,其中 download urls 作为键,mp3 名称 作为值.

【讨论】:

我已经尽力了,但我就是不知道该怎么做。我的新代码是:for link in soup.find_all('d2p1:DownloadUrl'): print(link.text) 我很不确定标签是否选择正确。 @Manuauto:响应是 JSON(键值对),这意味着您必须使用 Key 提取需求(值)。我鼓励你尝试工作。我相信您已经尝试并发布了您需要的解决方案。请检查上面的更新回复 谢谢。这段代码工作得很好。我自己无法对其进行编程。现在我将向它添加更多功能,知道如何扩展它。最重要的是,首先如何获取数据。

以上是关于html5 video 添加MP4文件损坏?的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTML5 视频在 Firefox 中播放 MP4 文件

我想问下大家HTML5的那个video标签支持MP4视频具体是怎么样的MP4格式啊.

在 HTML5 视频上方添加文本

如何提取视频文件大小 HTML5

将 DVD VIDEO_TS 目录转换为单个 mp4 或 mkv 文件?

IIS7 mp4 文件和 html 5 视频标签