python之 ffmpeg合并ts视频为mp4视频

目录

ffmpeg合并ts视频为mp4视频

补充:

代码:

所需准备的文件:

执行结果:


ffmpeg合并ts视频为mp4视频

补充:

补充:

◼  HLS 是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录于 m3u8 文件(即 playlist)内,其中附带一些额外描述(比如该资源的多带宽信息···)用于提供给客户端。客户端依据该 m3u8 文件即可获取对应的媒体资源,进行播放。

扫描二维码关注公众号,回复: 14441403 查看本文章

◼  m3u8 文件是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。
m3u8文件是一个播放列表(playlist)索引,记录了一系列媒体片段资源,顺序播放该片段资源,即可完整展示多媒体资源。

m3u8不是一种视频格式,而是一种纯文本文件。m3u8视频文件格式中存放了视频的基本信息和 分段视频的索引地址 (将一整个视频分成了时长不同的很多小段)。当播放m3u8视频时,就是按顺序下载播放索引列表的视频,从而完成一部完整视频的播放。

可以看到包含了一个m3u8文件和多个ts文件,其中M3U8是描述文件,ts是媒体文件。

◼  ts文件是一种视频切片文件,可以直接播放。对于点播来说,客户端只需按顺序下载上述片段资源,依次进行播放即可。而对于直播来说,客户端需要定时重新请求 该 m3u8 文件,看下是否有新的片段数据需要进行下载并播放。

// ffprobe /Users/yabin/Desktop/tmp/ts/out-0001.ts

 Duration: 00:00:14.36, start: 16.960000, bitrate: 351 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: hevc (Main) (HEVC / 0x43564548), yuv420p(tv), 590x1280, 25 fps, 25 tbr, 90k tbn, 25 tbc

代码:

import subprocess
cmdLine = 'ffmpeg -f concat -i hebing.txt -c copy output.mp4'
subprocess.call(cmdLine, shell=True)

所需准备的文件:

 hebing.txt:

执行结果:

1)代码执行结果:

 2)生成的output.mp4文件:

3)打开生成之后的output.mp4文件:

 

 OK。

猜你喜欢

转载自blog.csdn.net/qq_45956730/article/details/125980480