将.m3u8转换为视频文件保存到本地

实现将一直的视频流文件保存到本地,需要
安装ffmpeg
视频流文件地址

使用ffmpeg安装包中的ffplay.exe实现视频的播放:

ffplay http://edge.linknetott.swiftserve.com/channelgroup5/cg542production/ch262/03.m3u8

将.m3u8转换为视频文件保存到本地_第1张图片

实现视频的保存(注意不要是直播流)。

# coding:utf-8
import requests
import os
import sys

def SaveVideo(name, Hls):
    """
    保存流视频
    :param name: 保存路径、文件名
    :param Hls: 流地址
    :return:
    """
    # Way1(&& 、;):
    cmd = 'G:\\study\\ffmpeg\\bin\\ffmpeg  -i "' + Hls + '" -vcodec copy -acodec copy -absf aac_adtstoasc ' + name  + '.mp4'
    # Way2:
    # os.chdir("G:\\study\\ffmpeg\\bin")
    # cmd = 'ffmpeg  -i "' + Hls + '" -vcodec copy -acodec copy -absf aac_adtstoasc ' +name + '.mp4'
    # print cmd
    result = os.system(cmd.encode('gb2312'))

    if result == 0:
        print "Save Success ! "
    elif result == 1:
        print "Save Fail ! "
    elif result == 2:
        print "Save Error ! "
    else:
        print "Unknow Error ! "

简单解释一下代码:

  1. 代码是基于python2.7,windows环境使用。所以,如果你使用的python3,需要对代码进行小范围的调整。
  2. 代码中,我指定了自己的ffmpeg 的绝对路径,如果你在使用时,需要替换为自己的ffmpeg 路径。
  3. 还以一点,需要注意。使用带代码时,需要检测一下自己的环境默认编码格式,根据自己的环境对“os.system(cmd.encode(‘gb2312’))”的编码格式进行调整。
  4. 代码片中,有两种使用ffplay的方式:直接指定ffmpeg的路径调用;另一种先进行盘符切换,然后使用ffmpeg命令。
  5. 代码中使用ffmpeg对视频流进行了mp4文件转换。更多转换命令可以参考

祝你愉快的使用ffmpeg。

你可能感兴趣的:(将.m3u8转换为视频文件保存到本地)