python ts视频转mp4

这篇具有很好参考价值的文章主要介绍了python ts视频转mp4。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先说明一下Ts格式

TS(TransportStream,传输流)是一种封装的格式,它的全称为MPEG2-TS。MPEG2-TS是一种标准数据容器格式,传输与存储音视频、节目与系统信息协议数据,主要应用于数字广播系统,譬如DVB、ATSC与IPTV。传输流最初是为广播而设计的。后来,通过在标准的188字节数据包中添加4字节的时间码(TC),从而使该数据包成为192字节的数据包,使其适用于数码摄像机,录像机和播放器。

处理场景

爬取某鱼以及某些网站的视频,会获取到很多的以ts格式结尾的视频文件,这个时候需要进行合成成一个Ts视频文件或者MP4格式视频,我自己的电脑播放不了Ts后缀格式视频,于是就将Ts后缀格式视频转为了MP4。

直接使用os内置模块以下是代码:

import os


def merge_ts_video(ts_path, ts_path_):
    all_ts = os.listdir(ts_path)
    # 最好是对all_ts 进行排序处理一下
    # 我这里获取到后直接对ts视频文件进行了排序处理,所以没有加排序操作
    for file in all_ts:
        with open(ts_path + file, 'rb') as f1:  # 读取视频以二进制进行处理
            with open(ts_path_ + "VideoName.mp4", 'ab') as f2:  # 存储到指定位置,VideoName为变量值
                f2.write(f1.read())
        os.remove(os.path.join(ts_path, file))  # 将每次处理后的ts视频文件进行删除


merge_ts_video(r"./VideoPreliminaryStorage/", r"./VideoFinalStorage/")
# 函数调用:merge_ts_video
# 参数值:
#       参数1 存放 ts 的路径 VideoPreliminaryStorage
#       参数2 存放 mp4 的路径 VideoFinalStorage

以上内容虽然可以将Ts格式视频转为MP4格式,但是一些播放器无法识别出来,如:某音
转完之后是MP4,但是视频的格式变为了:媒体文件(.mp4) (.mp4)
所以还是使用ffmpeg了

"""
mp4 -->  ts  : ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ts  -->  mp4 : ffmpeg -i 2.ts -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
"""

先将所以的Ts格式视频合并成一个Ts格式文件,合并完成后进行转mp4文章来源地址https://www.toymoban.com/news/detail-727699.html

def merge_ts_video(ts_path, ts_path_, ffmpeg_path, video_name):
    all_ts = os.listdir(ts_path)
    all_ts_mp4 = [ts_path + file for file in all_ts]
    for all_ in all_ts_mp4:
        with open(all_, 'rb') as f1:
            with open(ts_path + f"{video_name}.ts", 'ab') as f2:
                f2.write(f1.read())
        # 删除多余ts文件
        os.remove(os.path.join(all_))

    # Ts视频转MP4
    new_ts = os.listdir(ts_path)
    cmd = ffmpeg_path + " -i " + f"{ts_path + new_ts[0]}" + " -acodec copy -vcodec copy -absf aac_adtstoasc " + ts_path_ + "\\" + f"{video_name}.mp4"
    os.popen(cmd)

    # 删除多余ts文件,清空文件夹(VideoPreliminaryStorage)
    os.remove(video_name + '.ts')
    for i in range(0, len(all_ts_mp4)):
        ts_name = os.path.basename(all_ts_mp4[i])  # 去掉文件名前面的文件路径
        mp4_name = os.path.splitext(ts_name)[0]  # 去掉文件名的后缀
        """
        mp4 -->  ts  : ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
        ts  -->  mp4 : ffmpeg -i 2.ts -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
        """
        # # 拼接好运行ffmpeg的命令行语句
        cmd = ffmpeg_path + " -i " + all_ts_mp4[
            i] + " -acodec copy -vcodec copy -absf aac_adtstoasc " + ts_path_ + "\\" + mp4_name + ".mp4"
        os.popen(cmd)
# 函数调用:merge_ts_video
# 参数值:
#       参数1 存放 ts 的路径 ts_path
#       参数2 存放 mp4 的路径 ts_path_
#       参数3 ffpmpeg 的路径 ffmpeg_path
#       参数4 视频存储 的名称 video_name

到了这里,关于python ts视频转mp4的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

    Builds - CODEX FFMPEG @ gyan.dev 先解压缩,会看到如下结构: 进入bin目录, 把需要转换的视频文件复制过来 ,同时 新建一个文件夹 用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据实际修改)后按Enter键: ffmpeg -i 源视频名字

    2024年02月10日
    浏览(30)
  • python ffmpeg将mp4文件实时转码为ts,并指定pid等信息,输出到udp

    要将MP4文件实时转码为TS格式,并将PID等信息指定为UDP输出,可以使用 subprocess 模块和ffmpeg命令行工具来实现。以下是一个示例代码,用于实时转码并将输出发送到UDP服务器: 在上述代码中,我们首先定义了输入文件、UDP服务器地址和PID等信息。然后,我们使用 subprocess.Pop

    2024年01月22日
    浏览(37)
  • python统计mp4/avi视频的时长

    当代码中导入了特定的库,它会使得在代码中可以使用该库所提供的功能和工具。以下是导入的两个库及其作用的解释: os(Operating System)是Python标准库之一,提供了与操作系统交互的功能。它允许您在代码中执行各种与文件和目录操作相关的任务,例如创建、删除、移动文

    2024年02月14日
    浏览(25)
  • python学习之合并多张图片转成mp4视频代码实现

    随着现代科技飞速发展和人们提升视觉上体验,利用图片生成视频的方法,确实为工作或者提升生活体验感做了很多成功案例: 1、简单的幻灯片演示,如展示旅游照片、产品展示等; 2、改编图片动画,如口红试色、时尚大片中的效果; 3、制作日记式的视频内容,将一段长

    2023年04月21日
    浏览(49)
  • ffmpeg ts列表合并为mp4

    操作系统:ubuntu 注意事项: 1.ts文件顺序必须正确,也就是下一帧的dst和pst要比上一帧的大,否则会报错 2.codecpar-codec_tag要设置为0,否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1) 3.设置output的max_streams数目,默认是1000,超过此数目就会报错

    2024年02月13日
    浏览(40)
  • 基于FFmpeg的封装格式MP4(TS)

    每一帧音频或视频都有一个持续时间:duration: 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8k

    2024年02月03日
    浏览(30)
  • 合并多个 .ts 文件为单个 .mp4 解决方案

    📌 概要: 现在的视频网站采用的是流媒体传输协议,即把一个完整的视频切分为多个小片段,这些片段就是以 .ts 为后缀的视频文件。分片下载需要一个索引文件记录所有分片的网络地址,而这个索引文件就是 .m3u8 。 前段时间我在用 .m3u8 下载器下载电影的时候出现了问题

    2024年02月12日
    浏览(39)
  • python 爬虫 m3u8 视频文件 加密解密 整合mp4

    完整代码如下: 1. 认识m3u8文件 m3u8 的结构详细分析可以看这个链接m3u8 文件格式详解 - 简书 (jianshu.com),这里我们只简要介绍一下; 相信无论多小白都应该知道如何打开开发者模型解析得到下面的结果; 要注意的是,只有预览里面包含了 ts 信息的才算是我们需要的 m3u8 文件

    2024年02月20日
    浏览(23)
  • 用python写一个变声器,要求导入mp4或者mp3文件,将视频中的声音变成女声

    用 Python 实现变声器可以使用第三方库 pydub。pydub 是一个音频处理库,可以支持多种音频格式,包括 mp3 和 mp4。 首先需要安装 pydub 库,使用 pip 安装: 这样我们就完成了一个简单的音频变声器,它可以将 mp4 或 mp3 文件中的声音变成女声。

    2024年02月16日
    浏览(30)
  • 使用Python代码实现视频(如.MP4)与图片(如.jpg)文件格式的相互转换

    1.使用Python代码将视频文件(.MP4格式)转换为图片(.jpg格式) 对视频进行抽帧操作,将视频逐帧转换为图片(.jpg格式的图片的文件) 此处采取的方法是:对视频.MP4文件 每隔10帧截取一张.jpg格式的图片 需要使用的Python方法cv2在opencv-python库中,下载安装方式; 实现上述功能的

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包