我目前使用ffmpeg将各种格式的视频转换为flv文件。一个请求也出现了,那就是将文件中的隐藏字幕信息也发送出去。有没有人有任何这方面的经验,或知道它甚至可以做到。我没有看到任何选择,但我想我会问。ffmpeg可以提取隐藏字幕数据
回答
如果标题是作为一个单独的数据流,然后提取它们的(相对)直截了当:
ffmpeg -i input.mov -an -vn -c:s copy -f rawvideo -map 0:s sub.txt
如果它“烧”上的视频文件,那么你很可能出于运气,但我认为字幕比字幕更常见。
为了得到公正的字幕,而不是任何元的垃圾,我发现
ffmpeg -i input.mov -an -vn -bsf:s mov2textsub -scodec copy -f rawvideo sub.txt
最适合我。
隐藏式字幕不是单独的流,也不会被刻录到图片中,它们在图片中的扫描线中交错显示 - 这是一种奇怪的美国思想,在其他地方并未真正使用。虽然你可以购买带有这种字幕的DVD,但通常美国以外的人不能看到字幕,甚至可能不知道文件中有一些字幕。
CCExtractor可以通过查看TS元数据提取VOB的这样的信息:http://ccextractor.sourceforge.net/
似乎对于ATSC流标题是“包含但分开”,不是图像,所以可以提取,见Anshul的答案。现在,如果ffmpeg可以“适当地覆盖它们”并将它们烧入,不确定,但至少可以提取... – rogerdpack 2016-01-13 18:48:36
闭路字幕是2格式
1)ATSC美国标准(的支持是有在的ffmpeg)
2)ISDB日本标准(支持尚未有在的ffmpeg)
你可以使用下面的命令
ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map s output.srt
这件事最近已经开发出来,所以请查看你的 ffmpeg版本。
感谢您开发此修补程序! – tmm1 2015-12-09 05:21:22
如果像我这样的人结束了这个线程,这里有一个关于ffmpeg
命令的更详细的解释。
ffmpeg -f lavfi -i movie=input.ts[out+subcc] -map 0:1 output.srt
似乎有源硬性要求是mpegts
格式(文件扩展名.ts
)的。否则lavfi
过滤器似乎不起作用。规范out+subcc
强制ffmpeg将隐藏式字幕(嵌入到帧数据中)视为单独的流。稍后-map 0:1
使ffmpeg
仅映射该流并丢弃其他所有内容。结果保存为output.srt
。根据您的输入,映射可能会有所不同。一个简单的方法来找出隐藏式字幕中的映射是运行ffprobe
命令,像这样
$ ffprobe -f lavfi -i movie=input.ts[out+subcc]
ffprobe version N-79653-g4efd3ec Copyright (c) 2007-2016 the FFmpeg developers
libavutil 55. 22.101/55. 22.101
libavcodec 57. 38.100/57. 38.100
libavformat 57. 34.103/57. 34.103
libavdevice 57. 0.101/57. 0.101
libavfilter 6. 44.100/6. 44.100
libswscale 4. 1.100/4. 1.100
libswresample 2. 0.101/2. 0.101
libpostproc 54. 0.100/54. 0.100
[h264 @ 0x7fe869826200] Increasing reorder buffer to 1
Input #0, lavfi, from 'movie=input.ts[out+subcc]':
Duration: N/A, start: 1562.233011, bitrate: N/A
Stream #0:0: Video: rawvideo (I420/0x30323449), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 90k fps, 30 tbr, 90k tbn
Stream #0:1: Subtitle: eia_608
流Subtitle: eia_608
具有“指标” 0:1
,所以这就是应该映射。
很少有分手注释,参数的顺序对于ffmpeg
,-f lavfi
必须先去-i move=...
,否则规格将不会被识别。此功能也很新,所以请仔细检查您的ffmpeg
版本,并在需要时进行升级。
- 1. 您可以通过MPMoviePlayerController访问HLS隐藏字幕数据吗?
- 2. 使用ffmpeg库提取文本字幕
- 3. 提取整数隐藏随机字符
- 4. detailCalloutAccessoryView隐藏字幕
- 5. 是否可以使用ffmpeg从MP4视频中提取SubRip(SRT)字幕?
- 6. 可以用CSS隐藏微数据吗?
- 7. 从电视信号中提取隐藏字幕
- 8. 如何从YouTube视频中提取隐藏式字幕副本?
- 9. 以JPEG字节隐藏数据?
- 10. 隐藏QWizard上的字幕
- 11. 隐藏式字幕的JSON
- 12. ActionScript提示视频控制中隐藏式字幕的点数?
- 13. 以html格式提交隐藏字段
- 14. 用户可以复制隐藏的字段数据?
- 15. 数据隐藏字段
- 16. 隐藏字段数据
- 17. iPhone:是否可以隐藏和取消隐藏UIACtionSheet按钮?
- 18. 想要隐藏cmd提示符屏幕
- 19. 可以要求django隐藏字段?
- 20. 隐藏式字幕中的ATSC图片用户数据
- 21. 我们可以隐藏glyphicons使用隐藏=“隐藏”
- 22. 根据屏幕宽度隐藏链接标题属性 - 不会取消隐藏
- 23. ffmpeg - 从管道输入中提取字幕?
- 24. 使用AJAX提交隐藏数据
- 25. intro.js显示和隐藏数据提示
- 26. 使用隐藏的iframe提交数据
- 27. 柔性图表隐藏数据提示
- 28. 的Javascript提示 - 数据隐藏在IE
- 29. 当屏幕被点击时隐藏/取消隐藏UINavigationbar
- 30. 可以使用streamio-ffmpeg gem从mp3文件中提取元数据吗?
谢谢Heshy。我会看到关于尝试一下。这个项目现在已经开始了,但是当它回来的时候我会记下这个。 – spinon 2012-08-08 23:13:45