m4s格式转换mp4

先安装 ffmpeg,具体从官网可以查到,https://ffmpeg.org,按流程走。
转换代码如下,可以任意选择格式导出

import subprocess
import os

def merge_audio_video(input_audio_path, input_video_path, output_mp4_path):
    # 构建 FFmpeg 命令
    ffmpeg_cmd = [
        'ffmpeg',                  # FFmpeg 执行文件
        '-i', input_audio_path,    # 输入音频 M4S 文件路径
        '-i', input_video_path,    # 输入视频 M4S 文件路径
        '-c', 'copy',              # 使用 copy 编码方式,保持原始编码
        output_mp4_path            # 输出 MP4 文件路径
    ]

    # 执行 FFmpeg 命令
    subprocess.run(ffmpeg_cmd)

if __name__ == "__main__":
    # 首发
    # 输入的音频和视频 M4S 文件路径
    input_audio_m4s_path = "/Users/xxx/Movies/bilibili/948126882/948126882_nb3-1-30280.m4s"
    input_video_m4s_path = "/Users/xxx/Movies/bilibili/948126882/948126882-1-30112.m4s"
    #
    # 输出的合并后的 MP4 文件路径
    output_merged_mp4_path = "/Users/xxx/Movies/bilibili/948126882/output_merged.mp4"
    
    # 确保输出文件夹存在
    os.makedirs(os.path.dirname(output_merged_mp4_path), exist_ok=True)

    # 调用函数进行合并
    merge_audio_video(input_audio_m4s_path, input_video_m4s_path, output_merged_mp4_path)

    print("合并完成!")

注意,b站导出的m4s文件有时候会出现报错, Invalid data found when processing input
https://www.bilibili.com/read/cv14802750/ 可以参考这篇文章。
mac多说一句,直接用sublime text读取m4s文件,打开是数字编码,删除前九对30,删到00,保存就可以转了。在这里插入图片描述

mac如果直接用文本格式读取,即使手动删除前9个0还是不行。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/94741.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

bootloader串口更新程序[瑕疵学习板]

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、储备知识二、程序步骤2.程序展示1.bootloader2.然后是主运行函数总结前言 很久没有更新文章了。最近工作太忙,没有学习很多的知识,然后这两天不忙了,就学习了一下bootloader的程序升级…

***一种改版后检查硬件PCB生产资料的方法***,简单实用,且不容易出错

一、前言 硬件电路设计改版是常有的事,不管小的实物,还是需求变更经常会遇到要增加或者减少器件,修改走线这些。在第一版已经做了生产资料投板的情况下,可以和第一板对比一下就知道改了哪些地方,怎么才能快速的定位出来改动点并检查是否更改呢。 有的人是通过PCB文件来检…

【ES】笔记-Promise基本使用

笔记-基本使用 一、初始Promise1. 抽象表达:2. 具体表达:为什么要用 Promise?promise的基本流程 二、fs读取文件三、AJAX请求四、Promise封装fs模块五、util.promisify方法六、Promise封装AJAX操作 一、初始Promise 1. 抽象表达: 1. Promise 是一门新的技术(ES6 规范) 2. Pr…

Live800:在线沟通有这些新趋势

近年来,随着互联网技术的快速发展,越来越多的企业开始采用在线客服系统,以解决与客户沟通的问题。这项技术的出现,不仅改变了企业与客户之间沟通的方式,也为未来在线沟通提供了新的方向。 在线客服系统的特点主要有以下…

【UE5】给模型指定面添加自定义材质

实现步骤 1. 首先我们向UE中导入一个简单的模型,可以看到目前该模型的材质插槽只有一个,当我们修改材质时会使得模型整体的材质全部改变,如果我们只想改变模型的某些面的材质就需要继续做后续操作。 2. 选择建模模式 3. 在模式工具栏中点击…

防御网络攻击风险的4个步骤

如今,人们正在做大量工作来保护 IT 系统免受网络犯罪的侵害。令人担忧的是,对于运营技术系统来说,情况却并非如此,运营技术系统用于运行从工厂到石油管道再到发电厂的所有业务。 组织应该强化其网络安全策略,因为针对…

【业务功能篇82】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-进阶实战

四、ElasticSearch进阶 https://www.elastic.co/guide/en/elasticsearch/reference/7.4/getting-started-search.html 1.ES中的检索方式 在ElasticSearch中支持两种检索方式 通过使用REST request URL 发送检索参数(uri检索参数)通过使用 REST request body 来发送检索参数…

LeetCode第16~20题解

CONTENTS LeetCode 16. 最接近的三数之和(中等)LeetCode 17. 电话号码的字母组合(中等)LeetCode 18. 四数之和(中等) LeetCode 16. 最接近的三数之和(中等) 【题目描述】 给你一个…

自然语言处理(三):基于跳元模型的word2vec实现

跳元模型 回顾一下第一节讲过的跳元模型 跳元模型(Skip-gram Model)是一种用于学习词向量的模型,属于Word2Vec算法中的一种。它的目标是通过给定一个中心词语来预测其周围的上下文词语。 这节我们以跳元模型为例,讲解word2vec的…

如何通过内网穿透实现外部网络对Spring Boot服务端接口的HTTP监听和调试?

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

【VLDB 2023】基于预测的云资源弹性伸缩框架MagicScaler,实现“高QoS,低成本”双丰收

开篇 近日,由阿里云计算平台大数据基础工程技术团队主导,与计算平台MaxCompute团队、华东师范大学数据科学与工程学院、达摩院合作,基于预测的云计算平台资源弹性伸缩框架论文《MagicScaler: Uncertainty-aware, Predictive Autoscaling 》被…

linux操作系统的权限的深入学习

1.Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户…

架构师日记-软件工程里的组织文化 | 京东云技术团队

一 引言 本文是京东到家自动化测试体系建设过程中的一些回顾和总结,删减了部分系统设计与实践的章节,保留了组织与文化相关的内容,整理成文,以飨读者。 下面就以QA(Quality Assurance)的视角来探讨工作中经…

Git分支机制

一、分支机制简述 要想真正理解Git的分支机制,我们要首先回过头来看一下Git是如何存储数据的。 Git并没有采用多个变更集( changeset )或是差异的方式存储数据,而是采用一系列快照的方式。当你发起提交时,Git存储的是提交对象( commi…

fastadmin iis伪静态应用入口文件index.php

<?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><rules><rule name"OrgPage" stopProcessing"true"><match url"^(.*)$" /><conditions…

开始MySQL之路——外键关联和多表联合查询详细概述

多表查询和外键关联 实际开发中&#xff0c;一个项目通常需要很多张表才能完成。例如&#xff0c;一个商城项目就需要分类表&#xff0c;商品表&#xff0c;订单表等多张表。且这些表的数据之间存在一定的关系&#xff0c;接下来我们将在单表的基础上&#xff0c;一起学习多表…

抖音seo矩阵系统源代码开发部署分享

一、 开发步骤分享 抖音SEO矩阵系统源代码开发部署分享&#xff0c;需要经验丰富的开发人员和服务器管理人员&#xff0c;以下是大致的步骤&#xff1a; 确定你需要的功能和设计&#xff0c;确定开发人员和设计师的角色和任务分配&#xff0c;以及开发进度和计划。 确定服务器…

java+ssm+mysql农场信息管理系统

项目介绍&#xff1a; 本系统为基于jspssmmysql的农场信息管理系统&#xff0c;功能如下&#xff1a; 用户&#xff1a;注册登录系统&#xff0c;菜地信息管理&#xff0c;农作物信息管理&#xff0c;种植信息管理&#xff0c;客户信息管理&#xff0c;商家信息管理&#xff…

《Flink学习笔记》——第四章 Flink运行时架构

4.1 系统架构 Flink运行时架构 Flink 运行时由两种类型的进程组成&#xff1a;一个 JobManager 和一个或者多个 TaskManager。 1、作业管理器&#xff08;JobManager&#xff09; JobManager是一个Flink集群中任务管理和调度的核心&#xff0c;是控制应用执行的主进程。也就…

花5分钟判断,你的Jmeter技能是大佬还是小白!

jmeter 这个工具既可以做接口的功能测试&#xff0c;也可以做自动化测试&#xff0c;还可以做性能测试&#xff0c;其主要用途就是用于性能测试。但是&#xff0c;有些公司和个人&#xff0c;就想用 jmeter 来做接口自动化测试。 你有没有想过呢&#xff1f; 下面我就给大家讲…