前言

在视频编辑领域经常会碰到这样的需求场景,用户选择了多段感兴趣的视频想把它们拼接成一个文件。本文的目标就是实现多段视频文件的合并。同时也接触到一个新的概念,流媒体封装格式类型:

媒体格式分为流式和非流式,主要区别: 1、非流式的元信息通常存储在文件中开头,有时在结尾; 2、流式的元信息跟具体音视频数据同步存放的,所以多个流式文件简单串联在一起形成新的文件也能正常播放;多个非流式文件的合并则可能需要重新编解码才可以正常播放 3、例如mpg格式就是流式格式,通过直接依次取出每个文件的AVPacket,然后依次调用av_write_frame()即可实现文件合并 4、例如mp4格式就是非流式格式,如果采用上面的流程合并则要求各个文件具有相同的编码方式,分辨率,像素格式等等才可以,否则就会失败。因为非流式格式的元信息只能描述一种类型的音视频数据

实现思路分析

对于视频截取来说,被截取的部分的音视频编码方式以及码流格式和源文件肯定是一样的,而对于多个音视频文件合并成一个音视频文件,每一个要被合并的音视频文件,其文件容器格式,音视频编码方式,音视频码流格式都有可能是不一样的,而且还有可能出现某一个文件只有音频或者视频,情况比从一个视频文件中截取一段复杂许多。这里由简易难的逐步实现。

这里假设要合并的文件具有相同的容器格式

  • 合并任意两个相同容器类型及编码参数的音视频文件

这是最简单的合并场景,编码参数都相同就意味着视频的分辨率,像素格式,编码法方式以及音频的采样率,采样格式,声道类型等等参数都一样,那么就不需要重新进行编解码了。合并思

ffmpeg(七)合并音视频文件相关推荐

  1. Win10 使用python和ffmpeg批量合并音视频

    将m4a文件和mp4文件合并为MP4 具体代码如下 import os,sys import io import subprocess #在vscode运行时输出内容含中文不乱码,其他软件运行未知 s ...

  2. 七牛云音视频文件并转码、添加水印官方示例

    七牛云音视频文件并转码.添加水印官方示例 java-sdk:https://github.com/qiniu/java-sdk/blob/master/examples/upload_pfops.ja ...

  3. FFMPEG学习(4)-使用ffmpeg读取基本音视频文件信息,熟释AVFormatContext结构

    前段时间把环境整了下,闲时学习下ffmpeg. 最近在看雷神的创作,边看,边学,感谢雷神! 头文件: // // ffmpeg_read_av_info.hpp // ffmpegDemo // // ...

  4. ffmpeg学习(11)音视频文件muxer(2)多输入混流

    在 ffmpeg学习(3)编码.解码的流程介绍 和 ffmpeg学习(9)音视频文件demuxer中介绍了媒体文件的解封装.本文记录Ffmpeg封装格式另一种处理与与demuxer相反方式–视音频复用 ...

  5. C++ 调用 ffmpeg.exe 执行音视频混流合并;

    ffmpeg.exe文件可以去官网下载:FFmpeg 官网似乎不提供32位dll文件的下载了,但是可以下载exe文件来直接调用: #include <iostream> #include ...

  6. ffmpeg音视频文件音视频流抽取,初步尝试人声分离

    文章目录 ffmpeg抽取音视频文件中的音频流 音频流类型 AAC与m4a的区别 AAC与mp3的区别 用ffmpeg查看视频的信息 用ffmpeg抽取AAC音频流 从AAC文件中获取音轨 音轨是什么 ...

  7. python(opencv + pyaudio + moviepy)实现录制音视频文件并合并

    使用opencv录制视频文件 def record_webcam(filename):"""cv2.VideoCapture(0, cv2.CAP_DSHOW)参数1:打 ...

  8. 音视频编解码流程与如何使用 FFMPEG 命令进行音视频处理

    一.前言 FFMPEG 是特别强大的专门用于处理音视频的开源库.你既可以使用它的 API 对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频 ...

  9. 使用FFmpeg命令处理音视频

    文章目录 前言 一.ffprobe相关命令 1.使用ffprobe查看音频文件的信息 2.使用ffprobe查看视频文件的信息 二.ffplay相关命令 1.基本的ffplay命令 2.音视频同步命令 ...

  10. android音视频工程师,音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源)...

    ## 音视频学习 (十三) Android 中通过 FFmpeg 命令对音视频编辑处理(已开源) ## 视音频编辑器 ## 前言 有时候我们想对音视频进行加工处理,比如视频编辑.添加字幕.裁剪等功能处 ...

最新文章

  1. source insight 添加行号
  2. python的git_Pygit: 用Python实现Git的功能
  3. android 点击字体,图片背景效果一起变换Demo
  4. python循环变颜色_在Python中使用循环变量在matplotlib中指定颜色
  5. IEWebBrowser组件的execWB方法
  6. 【渝粤教育】国家开放大学2018年秋季 2604T城市轨道交通行车组织 参考试题
  7. vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!
  8. Python 爬虫进阶五之多线程的用法
  9. .Net 中的继承知识点
  10. python读取txt文件为字典username_如何使用txt和ids将.txt文件内容解析为python中的字典?...
  11. ActiveMQ学习总结(1)——ActiveMQ快速入门
  12. AXIS的Calculater 测试
  13. 信息系统项目管理师(2022年) —— 第 7 章 项目成本管理
  14. 互动媒体技术——processing旋转方块(不同角度的旋转)
  15. 8.3 机器人平台设计之arduino与电机驱动
  16. 【串口助手】Python从零开始制作温湿度串口上位机
  17. JS代码优化(上篇)
  18. 并行分布式计算 并行机系统互联网络
  19. verilog 学习笔记1
  20. LK源码解析 9 总结

热门文章

  1. 计算机微信接收excel打不开怎么回事,微信打不开收到的Excel
  2. 大学生论文发表的费用需要多少
  3. QinQ、VLAN Mapping原理和配置
  4. python都能帮我做什么_为什么总有人说人生苦短我用Python,Python能帮我们做什么?...
  5. 易班应用开发教程php,易班 开发 java开发入门教程
  6. 2019-07-04:python音频处理库
  7. 从头学计量-中介效应理论介绍
  8. 统计学基础12-秩和检验
  9. 在 Java 应用程序中访问 USB 设备
  10. 二阶行列式求救二元线性方程组