【资源名称】:「Pacopacomama」2011年 【资源类型】:视频 【是否有码】:无码/官方水印 【资源大小】:259v/453G/24配额
先分享点技术经验
之前有些是mkv转的,虽然也是原版,但用了FFmpeg转换导致了编码时间和码率都变了,对于我这完美主义者来说很不满意,但WMV的元数据很难改,用过很多种方法都不太满意,终于找出了办法,有些WMV是两部分吧,很多都只能加1个,另一个不好用,你可以用ASFbin把原版的那一个切割前一面,MKV转换的切换1秒之后的,然后进行合并,合并的地方是片头静态画面,没有衔接痕迹,MKV转换的文件会默认用前面1秒原版的元数据,这样编码时间和码率和原版的一样了,可以理解为元数据映射。
- asfbin -i “D:原版文件.wmv” -end 00:00:01 -o “D:输出文件.wmv” 保留前一面
- asfbin -i “D:mkv转换的文件.wmv” -start 00:00:01 -o “D:输出文件.wmv” 保留1秒之后的
在这之前注意mkv转换的时候要把视频轨和音频轨换一下,之前FFmpeg转换的时候是视频轨1、音频轨2,而WMV都是相反的。 还有个问题是音频的位深,有的是16有的是32,找个音频位深一样的片头剪切合并也行,无论是mp4还是wmv合并的条件很苛刻。
- ffmpeg -i “D:MKV文件.mkv” -map 0:1 -map 0:0 -c copy “D:输出的文件.wmv” 转换格式也变换轨道了
然后我写了个脚本,就是把当前文件夹下所有WMV文件合并成一个文件,脚本就是弄个txt,然后把txt变成bat就行,每次使用直接点脚本就会处理当前文件下的文件。
- @echo off
- chcp 65001 >nul
- echo 开始合并WMV文件…
- :: 检查是否有WMV文件
- set count=0
- for %%f in (*.wmv) do set /a count+=1
- if %count% == 0 (
- echo 没有找到WMV文件!
- pause
- exit /b
- )
- echo 找到 %count% 个WMV文件
- :: 生成临时批处理文件来执行合并
- setlocal enabledelayedexpansion
- set “filelist=”
- for %%f in (*.wmv) do (
- if “%%f” neq “merged_output.wmv” (
- set “filelist=!filelist! -i “%%f””
- )
- )
- :: 一次性合并所有文件
- asfbin %filelist% -o merged_output.wmv
- echo 合并完成!输出文件: merged_output.wmv
- :: 清理临时文件(如果有的话)
- if exist merged_temp.wmv del merged_temp.wmv
- pause
脚本是多了点,脚本只是自动化而已,我常用所以写了脚本,其他也可以写脚本,太麻烦就没写,合并也可以用命令,一行命令解决。
- asfbin -i “D:第一个文件.wmv” -i “D:第二个文件.wmv” -o “D:合并后输出的文件.wmv”
还有一种情况下115会把视频文件转码识别错误,比如720p识别成红的的原画,有的人就不满意,你可以重新灌流,这样哈希值改变重新上传让115重新转码就好了。
- asfbin -i “D:原视频.wmv” -o “D:输出视频.wmv”
以上都是在保证原版的基础上的操作,只要视频流和音频流没有重新编码就是原版。用到的是FFmpeg几乎所有文件都能处理,ASFbin专门处理WMV的,这两个加入到环境变量就行,怎么加网上教程一堆,懒的教,我不喜欢图形界面,图形界面很多都夹带私货,命令行不会安装什么软件,不会有乱七八糟的东西,用的时候套命令行改文件名就行。有的第二个视频会有片头,不知道从哪剪裁,我推荐用Avidemux,好处是什么可以自行体会。 Exiftool是专门处理元数据的,MP4的元数据特别好处理,就不具体说了,MP4box有些情况比FFmpeg更好用,二者各有优点,重点是你学会了这些,伪装个原版WMV我不说你知道我是怎么整的,保证没有重新编码是原版画质得了当然,对于技术性大佬会看深层元数据就不一样了。
|
评论0