本帖最后由 xp3000 于 2018-10-6 15:16 编辑
第三方工具Mediainfo、grep和sed,
ffmpeg暂时可以不用,最后的切割命令才用到。
http://mediaarea.net/zh-CN/MediaInfo/Download/Windows
关于视频声音延迟的切割方法,上面链接是地址,CLI是命令行版查看工具,
视频1和3特点都无声音,删除了所有关键帧导致无法播放,
视频2特点:
片头:00:00:45.240
片尾:00:01:30.090
同时声音-5秒23毫秒才能同步,播放时候由于头部没有关键帧,是先播放0毫秒的声音和5秒25毫秒的视频,造成声音不同步,
专门用延迟的视频合并了个视频,合并视频特点,无声音视频1+头部5秒23毫秒视频没有关键帧的视频+无声音视频2,
CMD窗口输入复制代码 屏幕显示以下内容- General
- Complete name : C:\合并视频.mp4
- Format : MPEG-4
- Codec ID : M4V (isom/avc1/iso6/M4A /M4V /mp42)
- File size : 998 MiB
- Duration : 2 h 58 min 10 s
- Overall bit rate mode : Variable
- Overall bit rate : 343 kb/s
- Encoded date : UTC 2018-05-18 09:01:13
- Tagged date : UTC 2018-05-18 09:01:13
-
-
- Video
- ID : 1
- Format : AVC
- Format/Info : Advanced Video Codec
- Format profile : High@L4
- Format settings : CABAC / 4 Ref Frames
- Format settings, CABAC : Yes
- Format settings, ReFrames : 4 frames
- Codec ID : V_MPEG4/ISO/AVC
- Duration : 2 h 58 min 5 s
- Width : 1 280 pixels
- Height : 720 pixels
- Display aspect ratio : 16:9
- Frame rate mode : Constant
- Frame rate : 25.000 FPS
- Color space : YUV
- Chroma subsampling : 4:2:0
- Bit depth : 8 bits
- Scan type : Progressive
- Default : Yes
- Forced : No
- Color range : Limited
- Color primaries : BT.709
- Transfer characteristics : BT.709
- Matrix coefficients : BT.709
-
- Audio
- ID : 2
- Format : AAC LC
- Format/Info : Advanced Audio Codec Low Complexity
- Codec ID : A_AAC-2
- Duration : 1 h 58 min 10 s
- Channel(s) : 2 channels
- Channel layout : L R
- Sampling rate : 44.1 kHz
- Frame rate : 43.066 FPS (1024 SPF)
- Compression mode : Lossy
- Delay relative to video : -1 h 9 min 5 s 23 ms
- Default : Yes
- Forced : No
复制代码 想用命令提取Delay relative to video : 后面的-1 h 9 min 5 s 23 ms,
当然,在不同的视频是不一样的,有的是没有延迟的,没有显示,
有的视频头部数据无法识别,造成先播放了视频不该出现的部分,显示-5 s或-1 h 9 ms等等,
只要将片头加上有“-”号后面的时间,一次切除就能提取正确能播放部分,
(这里需要将-替换+,也就是片头+视频延迟的“-”时间刚好是正确不会造成延迟的视频部分。)
如果时间前面没有“-”号,则替换成为“+”,赋予变量用于后面计算出毫秒。
这里想到了grep用正则提取出延迟时间,和sed替换内容了,
但是如何提取的同时赋予变量,又对变量进行替换后提取内容为新的变量,这里不会,
目前只会单独的分次处理,这样就对视频进行了二次切割,
发现这个问题如果解决了,就可以解决很多问题,
比如有人提的,读取文件和文件内容,查找指定范围内的指定子表达式进行替换后,提取另外的有规律的字符串,赋予变量后对文件进行操作或用于命令。
不好意思,刚刚在代码中间设置了颜色,代码不能有颜色
‘ |