当前位置: 首页 > 知识库问答 >
问题:

使用ffmpeg实现Mp4到HLS的转换

訾高飞
2023-03-14

我正尝试在iOS应用程序中使用ffmpeg将本地。mp4视频转换为HLS。我已经使用pods集成了ffmpeg包装器,并生成了所有分段的。ts文件和m3u8文件,但是一些。ts文件段没有在。m3u8播放列表文件中列出,如下所示。它总是列出最后5个视频片段。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:13
#EXTINF:2,
out13.ts
#EXTINF:1,
out14.ts
#EXTINF:2,
out15.ts
#EXTINF:2,
out16.ts
#EXTINF:1,
out17.ts
#EXT-X-ENDLIST

我使用以下代码生成HLS。

    FFmpegWrapper *wrapper = [[FFmpegWrapper alloc] init];
    [wrapper convertInputPath:inputFilePath outputPath:outputFilePath options:nil progressBlock:^(NSUInteger bytesRead, uint64_t totalBytesRead, uint64_t totalBytesExpectedToRead) {

    } completionBlock:^(BOOL success, NSError *error) {
        success?NSLog(@"Success...."):NSLog(@"Error : %@",error.localizedDescription);
    }];

还有其他方法可以做到这一点吗?

共有1个答案

宗意蕴
2023-03-14

转换为HLS时的默认列表大小为5。因此,您将获得最后的5.ts文件。必须设置-hls_list_size0以包括所有生成的.ts文件。

ffmpeg-i input.mp4-profile:v baseline-level 3.0-s 640x360-start_number0-hls_time10-hls_list_size0-f hls index.m3u8更多信息

 类似资料:
  • 我正在寻找一个命令ffmpeg,它保存活的输入(rtmp或hls)到hls m3u8与mp4段文件。我知道这是可能的,即有infohttps://bitmovin.com/hls-news-wwdc-2016/,但我尝试的每个命令都生成ts文件。有人知道解决办法吗?

  • 我正试图在浏览器中显示mp4视频。原始文件具有AVI容器格式。我可以成功地转换到mp4和目标文件是可读的(视频+声音)与图腾电影播放器。所以我想显示贝娄页面一切都会好的 $ffmpeg-y-fflags+genpts-i input.avi-acodec copy-vcodec copy ouput.mp4 打开上面的html文件会播放声音,但不会显示视频。

  • 我试图支持我们网站上的网络摄像头视频的录制,然后我需要转码到MP4和 ;WebM,以支持HTML5播放。我在我们的服务器上安装了FFMPEG1.2,整个过程运行得相当好。 不过,我遇到的一个问题是将FLV转换成MP4。它是不可接受的慢,例如,一个8秒的FLV需要大约2.5分钟的代码转换! 我使用的命令是: 有太多的参数,我有点不知道解决这个问题的最佳方法。您可以从这里下载测试flv: 相比之下,转

  • 我正在构建一个web应用程序,涉及服务各种视频内容。Web友好的音频和视频编解码器处理没有任何问题,但我在设计与HTML5视频播放器如mkv容器或H265不兼容的视频文件交付时遇到了麻烦。 我的技术可行吗?因为只有在关键帧之后才可能进行分段,所以预置分段持续时间会有什么问题吗?ffmpeg是否可以绕过这个问题? 我对视频处理和生成的知识充其量只是微不足道。我将非常感谢一些指点。

  • 我试图转换一个实时的rtmp流到hls流。 我看了之后有了一些想法 提前谢谢...

  • 在这一点上,我的解决方案是工作的,但只能作为RTMP,我可以使用URL完美地观看我的流: 但问题是我的LG智能电视使用WebOS不支持RTMP,我真的很想在那里播放我的流。我现在能看到的唯一解决方案是使用HLS。使用HLS也很好,但我需要在打开电视中的HLS流之前执行我的ffmpeg命令,否则它将不会创建在电视上显示流所需的文件。