- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找到一种将不同输入 (ts) 多路复用到一个 MPTS 中的解决方案,以便可以将其用作 DVB-T 调制器的输入。基本上,我想要的是选择卫星接收器提供的某些 TS,将它们重新打包成一个 MPTS 并发送到调制器。目前,我已经设法用一个流来完成它,使用以下命令:
~/DATVRelease/ffmpeg \
-re -i URL_SINGLE_INPUT_TS_STREAM -vcodec copy -acodec copy \
-f mpegts -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 \
-mpegts_service_id 1 -mpegts_pmt_start_pid 1000 -mpegts_start_pid 1001 \
-metadata service_provider="YOUR CALL" \
-metadata service_name="N1 (ALEKSANDAR)" \
~/dvb/videots
其中 videots 是由 mkfifo 命令生成的 fifo 管道。以下代码在接收端产生了结果:
http://i.stack.imgur.com/BZugM.jpg
ffmpeg 中有一个 -map 函数,我可以在其中添加多个音频 channel /或视频 channel ,但它们不会在接收器端被检测为不同的服务电视 channel ,因为据我所知,必须创建足够的 PMT 表( iso13818)
我能找到的唯一开源是这个 http://www.scara.com/~schirmer/o/mplex13818/ ,但我仍然想知道 ffmpeg 是否可以为我完成这项工作?
最佳答案
这是生成一个包含多个节目的 MPEG2 TS 文件的基本命令。
ffmpeg -i FirstInput -i SecondInput \
-map 0:0 -map 0:1 -map 1:0 -map 1:1 \
-program title=ProgOne:st=0:st=1 -program title=ProgTwo:st=2:st=3 \
-f mpegts mpts.ts
下面是每个选项的简单说明。
-i FirstInput -i SecondInput
选择包含要复用到输出 MPTS 中的基本流的源文件
-map 0:0 -map 0:1 -map 1:0 -map 1:1
选择要复用到输出 MPTS 中的特定基本流。流将从零开始索引。这里我们为两个文件选择第一个和第二个流。通常它们对应于视频和音频流。参见 the Advance options chapter of FFmpeg documentation和 wiki for -map .
-program title=ProgOne:st=0:st=1 -program ProgTwo:st=2:st=3
告诉 FFmpeg 在输出 MPTS 中生成两个程序。这里 title
给出了 SDT 中的 service_name。 st=
指定放入相应程序的流。参见 the Main options chapter of FFmpeg ddocumentation
-f mpegts
告诉 FFmpeg 使用 mpegts muxer 以防无法从输出文件的后缀推断出它。
关键选项是 -map 和 -program 以在一个输出中复用多个程序。在 this commit 中添加了增强功能根据 issue 4734和 issue 4525 .
显然可以添加更多选项来调整行为,例如编解码器类型、比特率控制、质量控制等。
关于video - 使用 ffmpeg 将多个单视频 MPEG-TS 多路复用为 MPTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413992/
本文书接上回《反DDD模式之关系型数据库》,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新; DDD框架源码(.NET、Java双平台); 加群畅聊,建模分析、技术实
我里面有 VC 和一个 collectionView。所有管理 Collection View 的代码我都放在那个 VC 的扩展中。但现在我需要在另一个不同的 VC 中使用这个 Collection
我很难重新使用子机图。 我需要重新使用我已链接到一个状态的状态机作为子机,在另一个状态中作为子机。但是当我给出对它的引用时,我得到一个空指针异常。 引用图片 我已经添加了对 GeneralTopup
我想尝试 lambda 的一些功能,并想编写一个 ArrayList 过滤器,并使用 IntStream 的方法来计算 ArrayList 中数字的平均值和最大值 我的第一个想法是过滤 ArrayLi
我正在开发一个 NodeJS 应用程序并使用 Mocha 进行单元测试。 假设我有两个非常相似的测试服。事实上,这些是针对两个类的测试实现相同的接口(interface)。 例如: suit_a.js
我正在使用 Glade 编写带有对话框的 python GUI。 如果我不使用 Glade,我会使用一个类来创建一个对话窗口 (dialag),运行它 (dialog.run),执行它所做的任何事情,
我在使用自定义单元格创建 UICollectionView 以显示项目时遇到问题。但是在 UICollectionView 刷新后,可重用的单元格填充了错误的索引 刷新前的 UICollectionV
我从 Sencha 学习 ExtJS 并有下一个简单的任务: 我的页面上有 2 个 div 在第一个 div 中我渲染 Ext.Button 在按钮上单击我想将其移动到另一个 div 仅此而已 我写了
我想在不同的 Node 模块中重用 RabbitMQ channel 。由于 channel 是异步创建的,我不确定将此 channel 对象“注入(inject)”到其他模块的最佳方法是什么。 如果
所以我的问题是我收到一个 SIGABRT 错误,其定义如下: *** Terminating app due to uncaught exception 'NSInvalidArgumentExcep
我正在编写一个 PHP 脚本来将主题从旧论坛站点迁移到新站点。 旧论坛站点使用数据库“old_forums” 新论坛站点使用数据库“new_forums” MySQL 用户“forums”拥有两个数据
我有一个使用 jcodec 生成的 MP4 文件。 然后我就有了一个使用 Android 的 MediaCodec 生成的 AAC 文件。 我想将它们混合到一个文件中,并且由于我不想将我的 Andro
我正在使用 ffmpeg 开发一个 c++ 项目。我必须生成一个带有 h264 编码的 mp4 文件。 我的问题是文件生成但是当用 VLC 读取文件时我没有图像,并用 ffprobe 分析它给我(下面
我将尝试重新提出这个问题。 我想要做的是创建一个新的 mp4 文件,其中将包括一个视频文件、两个音频文件和一个字幕文件。我想创建一个可以在我的 iOS 设备和计算机上播放的 mp4 文件。 文件如下:
虽然我的问题可能看起来很抽象,但我希望不是。假设我开发了一个应用程序,一个 ASP.NET MVC 站点,然后我的任务是为这个应用程序构建一个 Winforms 客户端,我可以从现有应用程序中重用多少
我是一名优秀的程序员,十分优秀!