因为最近要求AcDown加入视频合并功能的呼声非常高(几乎一半多的反馈都在说这个问题),所以下午花了些时间来研究怎样用最方便(不需要最快)的方法来进行视频合并。

AcDown之前的版本使用的是某个第三方的FlvCombine组件,这个软件的优点在于体积非常小(一共才200多KB),方便集成到AcDown中,使用很简单,而且合并速度非常快,但是缺点也是非常显而易见的,那就是不支持mp4容器格式。而现在视频网站上的高清视频大都是mp4格式的,基于这点考虑,AcDown一直没有加入下载后合并视频的功能。

使用FFMPEG来进行合并一直是我在考虑的,但是因为之前AcDown的软件架构,在不到1M的软件中嵌入好几十M的ffmpeg显然不是一个好的选择,再加上我对它也不是很熟悉,所以下载后转换的这个问题一直拖到了现在。

言归正传,这次研究出来的合并方法其实算是比较投机取巧的,本身并没有使用ffmpeg的众多参数,而是绕了个弯,先将待合并的视频转换为体积很大的mpeg格式,然后再将其二进制合并后重新压缩编码,最后得到输出文件。虽然看起来很麻烦,不过稳定性还是可以保证的

以下是批处理文件:
目标是将位于桌面new文件夹中的1.flv和2.flv文件合并为combine.flv

cd " C:\Users\Kaedei\Desktop\new"
ffmpeg.exe -i "1.flv" -f mpeg -sameq -y -r 29.97 "1.flv.actemp"
ffmpeg.exe -i "2.flv" -f mpeg -sameq -y -r 29.97 "2.flv.actemp"
copy /b "1.flv.actemp"+"2.flv.actemp" "combine.flv.actemp" /y
ffmpeg.exe -i "combine.flv.actemp" -f mp4 -y "combine.flv"
del "1.flv.actemp"
del "2.flv.actemp"
del "combine.flv.actemp"

下面是各步骤的解释:

cd " C:\Users\Kaedei\Desktop\new"
进入桌面的new文件夹

ffmpeg.exe -i "1.flv" -f mpeg -sameq -y -r 29.97 "1.flv.actemp"
ffmpeg.exe -i "2.flv" -f mpeg -sameq -y -r 29.97 "2.flv.actemp"
将1.flv和2.flv转换为1.flv.actemp和2.flv.actemp文件,格式为mpeg,因为我用的FFMPEG貌似不支持输出1/15,1/20这样的帧率,所以强制设置帧率为标准的29.97,当然这样做会导致输出的文件体积变得略大。
copy /b "1.flv.actemp"+"2.flv.actemp" "combine.flv.actemp" /y
将输出的两个actemp文件通过二进制合并为combine.flv.actemp文件
ffmpeg.exe -i "combine.flv.actemp" -f mp4 -y "combine.flv"
将合并后的combine.flv.actemp文件转换为mp4编码的视频

利用ffmpeg来合并视频相关推荐

  1. java利用ffmpeg追加合并视频文件

    java利用ffmpeg追加合并视频文件 首先要用到ffmpeg,可以根据操作系统自行下载 每个视频格式要一样,分辨率要一样 多个视频地址以list存放,直接上代码 /*** 合并视频文件* @par ...

  2. Java 利用ffmpeg工具实现视频MP4转m3u8

    Java 利用ffmpeg工具实现视频MP4转m3u8(一) 前言 (一)ffmpeg工具转码 1.如何安装ffmpeg工具 2.如何使用ffmpeg工具进行视频转码 (二)播放m3u8文件 1.vi ...

  3. ffmpeg裁剪合并视频

    ffmpeg提供简单的命令参数: ffmpeg -ss START -t DURATION -i INPUT -vcodec copy -acodec copy OUTPUT 对上面的命令稍做个解释. ...

  4. PHP中利用Ffmpeg获得flv视频缩略图和播放时间

    为什么80%的码农都做不了架构师?>>>    这里简单说一下:FFmpeg是用于录制.转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库.官方正式版ffmpeg不支持 ...

  5. 使用 ffmpeg 快速合并视频文件

    1. 下载安装 ffmpeg 在官网上下载 ffmpeg 链接: Download FFmpeg windos 下下载 .ZIP 格式的 ffmpeg 直接解压即可,无需安装,之后配置好环境变量就好了 ...

  6. 编写Bash脚本实现使用FFmpeg批量合并视频

    前言 使用FFmpeg能够很方便的合并同分辨率的视频.很多时候我们可能需要批量化合并视频,此时可以通过编写Bash脚本来实现. 实现 批量合并视频 合并三个文件夹中的视频结果: result_path ...

  7. 利用ffmpeg+QSV进行视频处理

    引言 ffmpeg是一个视频处理领域的"瑞士军刀",在很多应用中都会用到,这里就不详细介绍它的使用啦,有需要的可以参考其官方文档和大量网上的资料. 这里着重介绍一下qsv这个东东, ...

  8. 利用ffmpeg下载m3u8视频

    Windows下载ffmpeg:https://ffmpeg.zeranoe.com/builds/ 添加环境变量(省略操作步骤):在PATH中加入ffmpeg二进制目录路径(例如:D:\Progra ...

  9. 利用ffmpeg将mp4视频转换成多张jpg图片

    分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec ...

最新文章

  1. java查询结果自定义显示_JPA自定义对象接收查询结果集操作
  2. c#测试字符串是否为GUID的几种方法
  3. 用分类映射的办法分类两条夹角为0.3度的直线
  4. 一个小厂前端 Leader 如何筛选候选人?
  5. 作业 给计算机编号 winform
  6. 策略模式/Strategy
  7. 人在低谷是最应该看的六句话!(深度好文)
  8. java构建二叉树_java实现二叉树的构建以及3种遍历方法
  9. MyBatis多参数传递之混合方式——MyBatis学习笔记之十五
  10. 【记录】帮同学做的一个函数拟合
  11. APISpace 手机号码归属地API
  12. 02_行销(Marketing)里用逻辑回归来找寻顾客参与度后面的原因
  13. sql修改服务器标记,KB974006-SQL Server 查询优化程序修复程序模型4199服务模型
  14. 结节性硬化症会一直病变吗?结节性硬化最晚多大发病?
  15. Wrong JPEG library version :library is 80,caller expects 62
  16. 【uniapp】解决uni.previewImage图片模糊问题
  17. c语言姓名如何定义,c语言如何输入编号和姓名
  18. 团队评分标准和评分结果
  19. 飞秋登录后好友面板出现乱码情况
  20. QtAndroid详解(2):startActivity和它的小伙伴们

热门文章

  1. FlashBack使用简单,强大的屏幕录像机制作
  2. 《JavaWeb---防恶意注册应用---输出随机验证图片》
  3. SWT 重启案例分析(六)
  4. Medicine in Microecology:Nanopore三代测序人类肠道病毒组的方法
  5. 多种进制转化 C/C++语言
  6. 地税计算机中心工作计划,2017年地税局行政工作计划范文(1000字)
  7. 面试官让我用Flex写色子布局,我直接给写了6个
  8. HDU-4219-Randomization?
  9. ITK 2D to 3D
  10. vue基于face-api.js实现人脸识别