十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在这里我推荐两衫世御种使用ffmpeg合成多个ts文件合成mp4
创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:网站制作、成都做网站、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。
第一种
第二种
如果想切割mp4为m3u8格式的,推荐选择以下第一行或岩命令就可以
第一种
第二种
第三种
接下来的命令可以切片mp4为返握m3u8列表
以上是使用ffmpeg 将m3u8视频格式转成mp4格式的,希望对同学们有所帮助,下期更新swf格式的转mp4格式
可以使用以下DOS命令达到目的
(XP系统点击“开始”菜单,“运行”,输入 cmd 再按回车):
(Win7系统点击左下角“开始”菜单,在搜索框输入 cmd 再按回车):
(此处假设你要合并的高清文件位于 E:\temps 这个位置)
copy /b E:\temps\ *.ts E:\temps\hebing.ts
如上,执行该命令后,E:\temps目录下的全部TS文件就被合并成一个hebing.ts文件了(你原来的那堆文件仍然存在)。
命令解释 :
这里使用copy命令的文件合并功能进行ts文件的合并,copy后面的 /b 参数表示把文件按二进制格式来合并,如果不加这个参数,则会把目标当成文本滚尘文件来合并,并在文件内添加不必要的标记,这会导致播放出错,所以必须加 /b 参数。
该命令的合并排序是按照你系统下的字母序来的,比如你的文件名是disk1.ts, disk2.ts, disk3.ts,那该命令就会按照disk1.ts+disk2.ts+disk3.ts的顺序来合并这三个文件,事实上,绝大多数网上下载的高清文件,都已经按字母序排列好了,所以你直接执行该命令即可。
上面的例子如果换成diskA.ts, diskB.ts, diskC.ts,该命令仍能正常进行,它会按diskA.ts+diskB.ts+diskC.ts(请统一排序关键字的大小写,即全部用大写A、B、C 或全部用小写a、b、c)。
最好只有一个排序关键字(数字或字母),也就是说各文件名相互间只有一个字符不同,见上面提示。
如果你想万无一失,可以手大正禅工把文件名改为1.ts, 2.ts, 3.ts, …..再执行合并。
不想手工改文件名,文件实在太多了可怎么办?
十个以上数字序号命名的视频注意!
9个以下的ts视频合成用以上方法是完全没问题的,但再多几个就要注意啦!
dos命令识别序号的顺序会变成“1、10、11、12...19、2、20、21...29、3、30”这种奇怪的顺序。
用一个小工具把序号统一弄成多位数就没问题了,比如0001、0002...0230、0231。
下载【文件批量改名工具】
按图示修改参数,有几千个文件就填成5位数,有几百个就填4位数,这样序号就不会和原有的冲突,然后开始重命名即可。
最后补充两点 :
如果你用软件来合并,请注意看软件的说明,有些软件会在合并过程中进行重编码,这可能导致高清文件质量下降。
如果你的高清文件所在硬盘路径太长,请直接将路径复制下来,在Dos命令窗口,待插入的清宽位置上点鼠标右键,选“粘贴”即可,在Dos窗口下不能用 Ctrl+v 来进行粘贴!
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的团咐文件放一起双击运行# :
clsecho offcd /d "%~dp0"mode con lines=5000
rem 使用copy批量合并ts文件出现乱序/顺序错乱的解决方法
set #=Any questionset _=WXset $=Qset/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "current=%cd%"
powershell -NoProfile -ExecutionPolicy bypass "庆悉Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
copy /b *.ts "合并.ts"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir
{
[DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)
{
Array.Sort(f, StrCmpLogicalW);
return f;
}
}
'@;
Add-Type -TypeDefinition $codes;
$current=($env:current).trim('\');
$files=@(dir -liter $current|?{('.ts' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{$_.Name});
if($files.length -ge 1){
$arr=[ExpDir]::Sort($files);
for($i=0;$i -lt $arr.Count;$i++){
$oldfile=$current+'\'+$arr[$i];
$newfile=$current+'\_#'+$arr[$i];
move-item -literal $oldfile $newfile -force -ErrorAction SilentlyContinue;
}
for($i=0;$i -lt $arr.Count;$i++){
$e='';
$m=[regex]::match($arr[$i], '\.[^\.]+$');
if($m.Success){$e=$m.groups[0].value;}
$newname=($i+1).ToString().PadLeft(8,'0')+$e;
$oldfile=$current+'\_#'+$arr[$i];
$newfile=$current+'\'+$newname;
塌差纯 write-host ($arr[$i]+' -- '+$newname);
move-item -literal $oldfile $newfile -force -ErrorAction SilentlyContinue;
}
}