我发现很多关于使用ffmpeg创建DVD菜单的问题,但我没有发现任何关于以编程方式访问DVD结构信息的问题.当我使用libav(或FFmpeg)库时,我可以打开DVD映像(iso文件)并访问视频,音频和字幕流.但我找不到任何API.
我可以使用VLC播放器(以及libvlc库)播放视频和查找信息.但我需要在程序上对音频和字幕流进行一些处理.我不想使用像SmartRipper这样的工具拆分VOB,然后才进行处理.
libav(ffmpeg)是否包含用于处理DVD菜单的任何API?如果没有,您能否推荐任何其他库,可用于获取有关标题(章节)开始和结束时间的信息,一帧(样本,AVPacket)准确度?
我听说过libdvdnav库,但我不知道它是否适合我.我是libav和DVD格式内部的新手.
我开始尝试使用Angular Material(0.8.3版本具体).
从主题相关指令和mdThemingProvider源代码的代码我发现光前景是为黑暗主题定义的.但是默认情况下,文本段落的文本仍然是黑暗的.
即使他们的输入演示的示例代码有颜色问题.当您删除标题和电子邮件输入字段的内容时,占位符文本将变为深灰色,因此几乎不可见.
我只是开始查看他们的库源代码,并且无法找到如何激活更改段落和占位符的文本以对比一个.
从简要查看core/services/theming/theme.palette.js文件,我发现了一些名称前缀对比的调色板属性.所以我认为他们定义了在黑暗主题上可见的颜色.但是如何主动使用它们呢?
有没有人建议在黑暗主题上存档可读内容而无需额外编码?
如果这不打破整个应用程序的动态更改主题(通过从js代码调用$ mdThemeProvider),那将是非常好的.
我已经从CDN下载了flv格式的视频(视频H264和音频AAC),并将其重新混合为MP4格式。但是视频受到长度的限制。因此,我已经下载了每个部分的视频:从起点,第1点,第2点开始(通过使用url中的seek参数)。每一点的开始都比上一点的结束早。
使用av_read_framei扫描了所有部分,发现相交的数据包不仅具有相同的大小和顺序,而且它们的dts / pt彼此偏移恒定值。因此,要将视频与从点1开始的视频并置在一起,我必须执行以下操作:
1.在输出文件中创建输出标头
。2.复制起始视频中的所有非相交数据包。
3.通过将常量移动dts值,从点1开始的视频复制所有非相交的数据包
如何使用libav(不是ffmpeg)执行所有这些操作?我阅读了如何在不使用其他libav库的情况下使用libavformat。但libav它不工作,因为那里没有avformat_alloc_output_context2的libav。avconv.c对于像我这样的新手来说,源代码源也太复杂了,无法隔离与流复制操作相关的部分。
有人可以提供我为例:
-开放input_file1和input_file2(仅当需要从通用教程标准程序不同)
-开放和写报头OUTPUT_FILE与同一容器格式和相同的视频和音频格式
-写数据包从input_file1到OUTPUT_FILE直到与例如分组pos == XXX
-写入分组从input_file2到OUTPUT_FILE由恒定值改变它们的DTS(或任何需要的话)
-写正确trailer
我之前在dts中计算时移。