使用python下载HLS(HTTP)流视频

问题描述 投票:0回答:2

我需要使用 python 下载流媒体视频(从 URL),命令行参数为:

ffmpeg -i URL stream.mp4

我知道我可以使用子进程命令

subprocess.call('ffmpeg -i '+ URL +' stream.mp4', shell=True)

是否有任何替代方案,例如我可以使用 API 来代替使用子进程命令

python ffmpeg video-streaming video-capture pyffmpeg
2个回答
0
投票

这是在 python 中使用 ffmpeg 的 API。

http://mhaller.github.io/pyffmpeg/


-1
投票

您可以使用python-ffmpeg-video-streaming,我已经查看了它的文档和存储库,这是一个非常简洁的项目,从 HLS ABR 支持到 AWS S3 上传。

对于 HLS 输出,请按照以下步骤操作:

第1步:
使用 pip 安装它:

pip install python-ffmpeg-video-streaming

第2步:
附上视频源:

import ffmpeg_streaming


video = ffmpeg_streaming.input(VIEDO_URL)

第2步:
设置视频比特率和输出:

from ffmpeg_streaming import Formats, Bitrate, Representation, Size


_360p  = Representation(Size(640, 360), Bitrate(276 * 1024, 128 * 1024))
_480p  = Representation(Size(854, 480), Bitrate(750 * 1024, 192 * 1024))
_720p  = Representation(Size(1280, 720), Bitrate(2048 * 1024, 320 * 1024))

hls = video.hls(Formats.h264())
hls.representations(_360p, _480p, _720p)
hls.output('/var/media/hls.m3u8')

正如我之前所说,您还可以将视频片段上传到任何 S3 兼容的云存储。

from ffmpeg_streaming import  S3, CloudManager


s3 = S3(aws_access_key_id='YOUR_KEY_ID', aws_secret_access_key='YOUR_KEY_SECRET', region_name='YOUR_REGION')
save_to_s3 = CloudManager().add(s3, bucket_name="bucket-name")

hls.output(clouds=save_to_s3)

欲了解更多信息,请查看软件包的官方文档

转码快乐!

© www.soinside.com 2019 - 2024. All rights reserved.