Jac*_*nds 5 ffmpeg h.264 captions
我想要从H.264视频(包含为mkv)中删除隐藏式字幕(EIA-608),而无需重新编码.
我最接近的是使用ffmpeg:
    ffmpeg -f lavfi -i movie=input.mkv[out+subcc] -map 0:0 output.mkv
为了将视频分成rawvideo和subrip组件并导出rawvideo.然而,这导致文件接近200GB,这实际上不是一个可持续的解决方案.
基于ffmpeg的解决方案会更好,但我可以使用任何必要的软件.
小智 9
这实际上可以使用比特流过滤器.据我所知,我自己发现了这个,因为我看到的每个地方都应该是不受支持的.
首先要了解的是,对于EIA-608和类似的隐藏式字幕标准,字幕作为用户数据直接嵌入视频比特流中.H.264比特流存储为NAL(网络抽象层)单元的序列.每个单元都有一个类型; 用户数据存储在补充增强信息(SEI)类型的NAL单元中.
事实证明,ffmpeg有一个名为bitstream的过滤器filter_units,它允许你按类型传递或拒绝NAL单元.因此我们可以使用它来删除所有SEI NAL单元,这将删除字幕.
该过滤器文件的filter_units说,我们必须用数字来指定类型.根据最新的H.264规范(表7-1),SEI单元具有类型6.
因此,以下命令将删除嵌入的隐藏式字幕:
ffmpeg -i input.mkv -codec copy -bsf:v "filter_units=remove_types=6" output.mkv
这对我有几个文件没有任何问题或副作用.
| 归档时间: | 
 | 
| 查看次数: | 2152 次 | 
| 最近记录: |