苦蓝 2023-07-26 18:51 采纳率: 60%
浏览 11
已结题

(现在只剩下ffmpeg环境变量配置的问题)Python|爬虫 只爬取了一个output.ts

Python|爬虫 只爬取了一个output.ts还不能播放
我的 ffmpeg 配置地址 C:\ffmpeg6.0\bin \ffmpeg.exe 在 cmd 中运行显示不是外部内部文件


```python
import requests
import subprocess

# 获取 m3u8 文件内容

url = 'https://example.com/video.m3u8'
response = requests.get(url)
m3u8_content = response.text

# 解析 m3u8 文件,获取视频片段 URL
base_url = url.rsplit('/', 1)[0]
video_urls = []
for line in m3u8_content.split('\n'):
    if line.startswith('#EXTINF:'):
        for i in video_urls:
            video_url = base_url + '/' + m3u8_content.split('\n')[i+1]
            video_urls.append(video_url)

# 下载视频片段并合并成一个完整的视频文件
with open(f'g:/234/output.ts', 'wb') as f:
    for video_url in video_urls:
        response = requests.get(video_url)
        f.write(response.content)

```

  • 写回答

5条回答 默认 最新

  • CF2301_77400554X 2023-07-26 19:06
    关注

    采用chatgpt:
    当下载视频片段并合并成一个完整的视频文件时,您的代码存在一些问题:

    1、video_urls列表问题:在代码中,您试图遍历video_urls列表以获取当前视频片段的索引,但是video_urls列表一开始是空的,因此循环不会执行。应该使用m3u8_content列表来提取视频片段的URL。

    2、命令行拼接问题:在下载完所有视频片段后,您需要将这些片段合并成一个完整的视频文件。目前代码中没有包含合并的步骤。

    这里是对代码进行修正后的版本:

    import requests
    
    # 获取 m3u8 文件内容
    url = 'https://example.com/video.m3u8'
    response = requests.get(url)
    m3u8_content = response.text
    
    # 解析 m3u8 文件,获取视频片段 URL
    base_url = url.rsplit('/', 1)[0]
    video_urls = []
    for line in m3u8_content.split('\n'):
        if not line.startswith('#'):
            video_url = base_url + '/' + line
            video_urls.append(video_url)
    
    # 下载视频片段并合并成一个完整的视频文件
    with open('g:/234/output.ts', 'wb') as f:
        for video_url in video_urls:
            response = requests.get(video_url)
            f.write(response.content)
    

    然而,这仅仅是将视频片段按顺序下载并保存为一个output.ts文件,并不保证合并后可以播放。如果m3u8文件中的视频片段是TS格式,那么这样的下载方式是合理的,但是如果视频使用其他编码或者分片方式,还需要额外的处理才能得到可播放的完整视频文件。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月27日
  • 修改了问题 7月27日
  • 创建了问题 7月26日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,