AVPlayer/MPMoviePlayerController的副标题
我正在使用M3U8视频格式来流式传输视频,现在我需要显示相同的字幕. 我在Apple文档中进行了搜索,发现我可以使用AVPlayer的closedCaptionDisplayEnabled属性来实现这一目标. 我有兴趣知道字幕的格式应该是什么? .srt格式会执行吗? 也可以使用MPMoviePlayerController? 实现相同的操作 任何帮助都将不胜感激. 解决方案 更新03/06/2020:在GitHub上,JBWEIMAR创建了一个示例项目,该项目使用了看起来非常有前途的AVAssetResourceLoaderDelegate方法: https://github.com/jbweimar/jbweimar/external-webvtt-example 更新10/30/2018:值得检查指向).他建议一种涉及AVAssetResourceLoaderDelegate的解决方案.我没有自己尝试过,但这可能比下面我的解决方案更好. 原
12 2024-03-21
编程技术问答社区
FFmpeg-从传输流文件(.ts)中提取视频和音频
我希望通过指定其PID而不会丢失质量并在结果文件中使用相同的编解码器(输出)来提取传输流文件中某个程序的音频和视频文件是mpeg). ffmpeg甚至是可能的吗?如果是这样,我该怎么做? 到目前为止,我已经来了这个命令: ffmpeg -i tsfile.ts -vcodec copy -acodec copy -q:v 1 output.mpg 编辑:请注意,文件输出.mpg是创建的.该文件包含视频,但没有附加音频(无声音).另外,我无法指定提取的程序. 编辑2 :这是 ffmpeg -i tsfile.ts 的输出 ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers built on Nov 25 2012 12:21:26 with gcc 4.7.2 (GCC) libavutil 52. 9.100 / 52. 9.10
34 2024-03-19
编程技术问答社区
如何在没有MediaExtractor的情况下使用H264的MediaCodec
我需要使用MediaCodec而没有MediaExtractor,并且我正在使用FileInputStream读取文件.目前它不起作用,它在屏幕上显示了绿色的炒图像. 这是整个源代码: FileInputStream in = new FileInputStream("/sdcard/sample.ts"); String mimeType = "video/avc"; MediaCodec decoder = MediaCodec.createDecoderByType(mimeType); MediaFormat format = MediaFormat.createVideoFormat(mimeType, 1920, 1080); byte[] header_sps = { 0, 0, 0, 1, 103, 100, 0, 40, -84, 52, -59, 1, -32, 17, 31, 120, 11, 80, 16, 16, 31, 0, 0, 3, 3,
12 2024-02-17
编程技术问答社区
忽略了ITuner::put_TuneRequest()的调用
我有一个带有" Microsoft DVBT网络提供商"," Avermedia BDA DVBT调谐器"," Avermedia BDA数字捕获","示例Grabber"和" Null Menderer". 这些过滤器已连接. 除此之外,我还拥有一个" mpeg-2弹药器"和" BDA MPEG2传输信息过滤器",但是这两个过滤器未连接!似乎他们必须在这里才能运行图. 启动图表时,我会收到TS数据,但是无论我做什么,我都无法提出调整请求.我只能使用Windows Media Center(例如Windows Media Center)捕获最后一个调谐频率的MUX数据. . 这是用于提出调子请求的代码: // creating tuning space CComPtr pDVBTuningSpace; hr = pDVBTuningSpace.CoCreateInstance( __uuidof( DVBTuningSp
4 2023-11-18
编程技术问答社区
使用OpenSSL来解密.ts文件
一切都在同一目录中. m3U8文件: #EXTM3U #EXT-X-ALLOW-CACHE:NO #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-KEY:METHOD=AES-128,URI=MyKeyFile.key #EXTINF:10, aes_ts_files/filesequence0000000.ts #EXTINF:10, aes_ts_files/filesequence0000001.ts #EXTINF:10, aes_ts_files/filesequence0000002.ts #EXTINF:10, aes_ts_files/filesequence0000003.ts #EXTINF:10, aes_ts_files/filesequence0000004.ts #EXTINF:10, aes_ts_files/filesequence0000005.ts #EXTINF:10, ae
78 2023-05-11
编程技术问答社区
用FFMPEG将HEVC视频复用到MPEG传输流中
我想将HEVC编码视频复用到MPEG-TransportStream中. 我有一个用x265编码的视频. x265 raw.y4m --output coded.hevc 我想将此视频复用到MPEG TransportStream中. 我尝试了以这种方式尝试: ffmpeg -fflags +genpts -i coded.hevc -c:v copy -f mpegts transportstream.ts 不幸的是,此错误消息显示出来,transportStream.ts为空. [mpegts @ 0x1fa76a0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly [mpegts @ 0x1fa76a0]
126 2023-03-22
编程技术问答社区
HTTP实时流媒体MPEG TS段
我正在使用FFMPEG和一个免费的分段器(Carson McDonald's)来生产我的TS段,后来我将其保存到Web服务器上,并通过播放.m3U8 来播放QuickTime 如果我有1,2,3,4的细分市场,而另一个带有段的流1,2,3,4,则想让他们交织我该怎么办.如果我如下:1,2,其他流的3、4效果很好.但是,如果我想如下:1,2,其他流的4、4不起作用. 换句话说,要添加的段必须具有与我要替换的段相同的数字.这是为什么?这与PCR有关吗?我希望能够在任何地方交织任何细分市场.我该怎么做? 谢谢, M3U8文件是 #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:21 #EXTINF:10, sample_ep_386k-00021.ts #EXTINF:10, media_2.ts #EXTINF:10, sample_ep_386k-00023.ts 解决方案 您是否修改了
22 2023-03-11
编程技术问答社区
FFmpeg-从传输流文件(.ts)中提取视频和音频
我希望通过指定其PID而不会失去质量并在结果文件中使用相同的编解码器(输出)来提取传输流文件中某个程序的音频和视频文件是mpeg). ffmpeg是否甚至是可能的?如果是这样,我该怎么做? 到目前为止,我已经来了这个命令: ffmpeg -i tsfile.ts -vcodec copy -acodec copy -q:v 1 output.mpg 编辑:请注意,文件输出.mpg是创建的.该文件包含视频,但没有附加音频(无声音).另外,我无法指定提取的程序. 编辑2 :这是 ffmpeg -i tsfile.ts 的输出 ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers built on Nov 25 2012 12:21:26 with gcc 4.7.2 (GCC) libavutil 52. 9.100 / 52. 9.1
292 2023-01-18
编程技术问答社区
从libavformat获取TS数据包到缓冲区
我想捕获视频,将其压缩并以MPEG2 TS为单位.对于FFMPEG库来说,所有这些都很简单,但是我想做的,而不是将其写入文件,而是以缓冲区捕获TS数据包并以其他方式使用此流.有一个简单的方法吗? 要编写编码的帧以立即文件,我使用av_interleaved_write_frame(oc,&pkt). OC是带有文件名和格式定义的输出上下文. PKT是包含压缩框架的AVPACKET. av_interlaced_write_frame正在执行muxing并编写文件. 我想实现的目标是将相同的TS流写入多个文件,并开始和停止彼此独立编写不同的文件.为每个流启动新的Muxer似乎效率低下,因为TS流不需要任何标题或正确的结局才能正确播放(如果我阅读的内容是正确的话) 我有点迷路,试图在FFMPEG代码中找到好的示例,并且库的记录不是很好.对此主题的任何意见都将不胜感激.谢谢! 解决方案 终于使它起作用.一种方法是使用avio_alloc_context设置一个回调,在
54 2022-09-21
编程技术问答社区
将普通文件转换成Mpeg TS的多路传输
IM使用MPEG2-TS和ISDB-T(Integrated Services Digital Broadcasting-Terrestial)在文件广播方法中工作,我的问题是我无法将文件放入数据流或RawVideo或RawVideo或在mpeg-ts内部放置....我使用ffmpeg和avconv.这是测试的示例: ffmpeg -f mpegts -i Myfile.tgz -probesize FILESIZE -mpegts_original_network_id 0x1 -mpegts_transport_stream_id 0x1 -mpegts_service_id 0x25 -mpegts_pmt_start_pid 0xbb9 -mpegts_start_pid 0xbba -metadata service_provider="FILESSERVER" -metadata service_name="FILES" -muxrate 16M output.ts
30 2022-09-21
编程技术问答社区
如何从PCR中生成十六进制的时间戳
当使用 tsduck 检查传输流时,我可以看到一些数据包包含十六进制的 PCR 值.我不确定如何将这些转换为时间戳. 例如,在下面的数据包中,PCR值为0x000002014CE * Packet 179 ---- TS Header ---- PID: 481 (0x01E1), header size: 25, sync: 0x47 Error: 0, unit start: 1, priority: 0 Scrambling: 0, continuity counter: 4 Adaptation field: yes (21 bytes), payload: yes (163 bytes) Discontinuity: 0, random access: 0, ES priority: 0 PCR: 0x000002014CE ---- PES Header ---- Stream id: 0xE0 (Video 0) PES pa
170 2022-08-15
编程技术问答社区
传输流-提取信息
我有整个多路复用器,其中四个通道转储在一个 *.ts 文件中.我正在对其进行解复用,但我找不到任何关于如何提取分辨率、帧速率、编解码器、语言、频道等的信息...... 我应该阅读宏块,还是做其他事情? 谢谢. 解决方案 以下是查找信息的列表: 程序数量、描述等:PAT 和 PMT. 音频和语言的数量以及附加信息:SDT、BAT 等 编解码器 - 参考 PES 标头 - stream_id 并在 MPEG 2 系统标准中查找. 分辨率和帧速率,4.2.0/4.2.2 - MPEG 2 视频基本流中的序列头. 比特率 - 您只能通过计算两个 PCR 数据包之间的数据包数(x 188 字节)和 PCR 距离来估计. 将您的问题附加到更具体的字段.
122 2022-08-15
编程技术问答社区