python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频
使用python 下载m3u8格式视频,并合成
# -*- coding: utf-8 -*-
# Created on 2018/07/26
import os
import requests
"""
下载M3U8文件里的所有片段
"""
def download(url):
download_path = os.getcwd() + "/download"
if not os.path.exists(download_path):
os.mkdir(download_path,0777)
all_content = requests.get(url).text # 获取M3U8的文件内容
file_line = all_content.split("\r\n") # 读取文件里的每一行
# 通过判断文件头来确定是否是M3U8文件
if file_line[0] != "#EXTM3U":
raise BaseException(u"非M3U8的链接")
else:
unknow = True # 用来判断是否找到了下载的地址
for index, line in enumerate(file_line):
if "EXTINF" in line:
unknow = False
# 拼出ts片段的URL
pd_url = url.rsplit("/", 1)[0] + "/" + file_line[index + 1]
print pd_url
res = requests.get(pd_url)
c_fule_name = str(file_line[index + 1])
with open(download_path + "/" + c_fule_name, 'ab') as f:
f.write(res.content)
f.flush()
if unknow:
raise BaseException("未找到对应的下载链接")
else:
print u"下载完成"
if __name__ == '__main__':
download("http://hzresource.cdn.bcebos.com/hls/geruikldsl/hls.m3u8")
使用shell 脚本 把下载的ts文件追加到一个文件中
root@alex-virtual-machine:/www/movie/v# for i in `ls *.ts`; do cat $i >> com.ts; done
root@alex-virtual-machine:/www/movie/v# ls
com.ts out007.ts out015.ts out023.ts out031.ts out039.ts out047.ts out055.ts out063.ts out071.ts out079.ts out087.ts out095.ts out103.ts out111.ts out119.ts out127.ts out135.ts
out000.ts out008.ts out016.ts out024.ts out032.ts out040.ts out048.ts out056.ts out064.ts out072.ts out080.ts out088.ts out096.ts out104.ts out112.ts out120.ts out128.ts out136.ts
out001.ts out009.ts out017.ts out025.ts out033.ts out041.ts out049.ts out057.ts out065.ts out073.ts out081.ts out089.ts out097.ts out105.ts out113.ts out121.ts out129.ts out137.ts
out002.ts out010.ts out018.ts out026.ts out034.ts out042.ts out050.ts out058.ts out066.ts out074.ts out082.ts out090.ts out098.ts out106.ts out114.ts out122.ts out130.ts out138.ts
out003.ts out011.ts out019.ts out027.ts out035.ts out043.ts out051.ts out059.ts out067.ts out075.ts out083.ts out091.ts out099.ts out107.ts out115.ts out123.ts out131.ts out139.ts
out004.ts out012.ts out020.ts out028.ts out036.ts out044.ts out052.ts out060.ts out068.ts out076.ts out084.ts out092.ts out100.ts out108.ts out116.ts out124.ts out132.ts out140.ts
out005.ts out013.ts out021.ts out029.ts out037.ts out045.ts out053.ts out061.ts out069.ts out077.ts out085.ts out093.ts out101.ts out109.ts out117.ts out125.ts out133.ts out.m3u8
out006.ts out014.ts out022.ts out030.ts out038.ts out046.ts out054.ts out062.ts out070.ts out078.ts out086.ts out094.ts out102.ts out110.ts out118.ts out126.ts out134.ts
把合成后的ts文件转换成mp4文件即可
root@alex-virtual-machine:/www/movie/v# ffmpeg -i com.ts -acodec copy -vcodec copy -bsf aac_adtstoasc output.mp4
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpegts, from 'com.ts':
Duration: 00:23:21.27, start: 1.400000, bitrate: 265 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1366x768 [SAR 1:1 DAR 683:384], 15 fps, 15 tbr, 90k tbn, 30 tbc
Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 58 kb/s
[mp4 @ 0x1c52600] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x1c52600] Codec for stream 1 does not use global headers but container format requires global headers
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf56.40.101
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1366x768 [SAR 1:1 DAR 683:384], q=2-31, 15 fps, 15 tbr, 90k tbn, 90k tbc
Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, 58 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=21019 fps=0.0 q=-1.0 Lsize= 40433kB time=00:23:21.30 bitrate= 236.4kbits/s
video:30668kB audio:9136kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.579515%
python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频相关推荐
- 爬虫python下载视频_用python做爬虫下载视频
用python有一段时间了,对python是十二分喜爱,在我看来python是个好工具,可以轻松简洁的帮我完成一些我想要完成的工作.下面和大家分享一下我用python爬取某网站视频的案例.用pytho ...
- python批量下载bilibili视频_如何批量下载bilibili的视频?
貌似现在 you-get 已经支持批量下载了.通过下面命令就可以批量下载了 you-get --playlist 网址 本来是带这个需求来的,看到 Venchi 的答案,装了 Python3 之后发现 ...
- python无水印下载视频_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- python下载b站视频_【python】抖音无水印视频下载和b站视频下载
本帖最后由 370125229 于 2020-3-27 17:38 编辑 萌新一枚,拿这个练练手 用python写的,部分视频可能还是会有水印 抖音 蓝奏: https://www.lanzous.c ...
- python 爬取加密视频_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址
之前写<使用Python抓取m3u8加密视频>笔记的原因,是自己有几个视频想保存,但对于m3u8, .ts 文件拼接不熟悉,就尝试写个脚本练手. 今天看了回复,有同学想知道如何从视频网站上 ...
- 用python处理excel文件_用python 读写excel文件(附资料下载)
对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等工具包.利用这些工具,可以方便的对excel 进行操作. 1. 下载 xlutils ...
- python如何下载os库_简谈下载安装Python第三方库的三种方法
如何下载安装Python第三方库(注:此文章以Windows的安装环境为前提) 一.利用Python中的pip进行第三方库的下载 首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和 ...
- python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁
有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...
最新文章
- Coinbase内部调查未发现比特币现金内幕交易证据
- 2字节取值范围_第二篇——整数和浮点数在计算机中的表示(2)
- 【数字信号处理】相关函数 ( 能量信号 | 能量信号的互相关函数 | 能量信号的自相关函数 )
- elasticSearch的安装步骤~
- 【flink】Flink-Cep实现规则动态更新
- centos7重新加载服务的命令_CentOS7服务管理(重启,停止,自动启动命令)
- flash盖住层的解决办法
- tinyxml初体验
- 富士施乐3300打印机驱动安装说明
- 计算机网络:逆向工程(精细版)
- VS2013使用技巧汇总(有图)
- Python爬虫实战:《战狼2》豆瓣影评分析
- 提升你幽默感的经典短句
- mysql精度_MySQL几种数据类型精度和标度的情况
- 操盘手“本来生活”,这样把“褚橙”卖成“励志橙”
- 高中信息技术python练习题_Python基础练习题5
- [jzoj 4246] 【五校联考6day2】san {spfa+dfs/spfa+拓扑排序+dp}
- LiveNVR监控摄像头Onvif/RTSP视频流媒体服务平台概览负载信息实时展示取流中、播放中、录像中等使用数目说明
- 模型加速之轻量化网络
- 流程引擎规则引擎_规则引擎的优势
热门文章
- 安卓SO层开发 -- 编译指定平台的SO文件
- Lemur(狐猴)一个用于自然语言模型和信息检索研究的系统
- rgb sw 线主板接口在哪_个性外观兼容强,还送三风扇,酷冷至尊TD500 MESH体验|机箱|电源|散热器|主板|白色...
- HRM人力资源管理平台
- php一条SQL语句mysql插入两条重复的数据
- django官网网址
- C#调用matlab时的类型初始值设定项引发异常
- Windows程序设计入门教程[来自邪恶八进制信息安全团队(www.eviloctal.com)]
- 如何下载百度地图2.5维数据
- java计算机毕业设计ssm办公耗材采购管理系统(源码+系统+mysql数据库+Lw文档)