我正在尝试使用HTTP直播流(HLS)将视频流式传输到我的计算机和iPhone.在阅读了Apple的"HTTP直播流媒体概述"以及"为iPhone和iPad创建和部署HTTP直播流媒体的最佳实践"后,我有点陷入困境.
我拿了我的源文件(mkv)并使用ffmpeg对MPEG-TS格式和Apple推荐的设置以及Baseline 3.0配置文件进行编码:
ffmpeg -i "example.mkv" -f mpegts -threads:v 4 -sws_flags bicubic -vf "scale=640:352,setdar=16/9,ass=sub.ass" -codec:v libx264 -r 29.970 -b:v 1200k -profile:v baseline -level:v 3.0 -movflags faststart -coder 1 -flags +loop -cmp chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 239 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -direct-pred 1 -fast-pskip 1 -af "aresample=48000" -codec:a libvo_aacenc -b:a 96k -ac 2 -y "output.ts"
Run Code Online (Sandbox Code Playgroud)
不用担心.我使用预编译的分段工具来分割视频并构建.m3u8播放列表.结果文件如下所示:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
http://localhost/media/stream/stream-1.ts
#EXTINF:10, …
Run Code Online (Sandbox Code Playgroud) **您好,我正在尝试在我的 flutter 应用程序中播放实时新闻视频,它是 .m3u8 格式,但出现上述错误。使用所有更新的依赖项。我想在我的 flutter 应用程序中播放实时新闻。我有网址你也可以试试。URL: http: //161.97.162.167:1936/ live/tnnnews/playlist.m3u8 当我使用另一个带有 .m3u8 的 url 时,它会在 flutter 应用程序上播放,但是当我粘贴实时 url 代码时,它会抛出上述错误。**
代码
import 'package:video_player/video_player.dart';
import 'package:flutter/material.dart';
class VideoApp extends StatefulWidget {
@override
_VideoAppState createState() => _VideoAppState();
}
class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network(
'http://161.97.162.167:1936/live/tnnnews/playlist.m3u8')
..initialize().then((_) {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
setState(() {});
});
}
@override
Widget build(BuildContext …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用iOS应用中的ffmpeg将本地.mp4视频转换为HLS.我已经使用pod集成了ffmpeg包装器并生成了所有分段的.ts文件和m3u8文件,但是.m3u8播放列表文件中没有列出一些.ts文件段,如下所示.它始终列出最后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
Run Code Online (Sandbox Code Playgroud)
我使用以下代码生成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);
}];
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以做到这一点?
在尝试使用videoview和mediaplayer播放m3u8文件的多种方法后,我决定放弃.每次我播放m3u8文件时我都只能听到声音.(请不要写堆栈溢出的网址来回答我的问题.我已经全部红了)一直在四处询问,最后知道exoplayer可能是我正在寻找的那个.然而exoplayer似乎是一个新手,我找不到任何适当的教程.有人说我自己是一个新手,关于跟踪器和blabla的所有谈话对我来说似乎太复杂了.我只希望能够在我的应用程序中打开来自不同网址的所有m3u8文件,而不会将它们传递给vlc或任何外部意图.
为了记录我使用KitKat及以上.因此exoplayer应该是可实现的.
那么,什么林desperatly要求的是在我如何使用exoplayer发挥出自己的M3U8文件简单的教程或显示视频任何其它方式播放音乐,不是他们的只有一个.请不要将我链接到google dev上的exoplayer页面.我也去过那儿.
提前致谢 :)
当我使用ffmpeg
转换m3u8
为 时mp4
,我收到一些警告,
ffmpeg -i xx.m3u8 -c copy demo.mp4
Run Code Online (Sandbox Code Playgroud)
警告是
Non-monotonous DTS in output stream 0:1; previous: 3277744, current: 3276712; changing to 3277745. This may result in incorrect timestamps in the output file.
Non-monotonous DTS in output stream 0:1; previous: 3277745, current: 3277736; changing to 3277746. This may result in incorrect timestamps in the output file.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决它?
HLS(m3u8)文件引用mpeg-ts文件.在iOS'AVPlayer中播放时,如何确定当前正在播放的mpeg-ts URI?
我有HLS m3u8在IOS和Android上使用html5播放效果很好 <video>
但不能在桌面PC或桌面MAC(Chrome,Firefox)上播放
如何在台式机上玩m3u8?
是否存在可在桌面和移动设备上播放的视频流格式?
Apple 提供了一个支持HLS m3u8文件中字节范围段的示例
#EXTM3U
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-VERSION:4
#EXTINF:10.0,
#EXT-X-BYTERANGE:75232@0
media.ts
#EXTINF:10.0,
#EXT-X-BYTERANGE:82112@752321
media.ts
#EXTINF:10.0,
#EXT-X-BYTERANGE:69864
media.ts
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何为给定的.ts文件创建这样的播放列表.那有什么工具吗?
我想下载M3U8文件块(HLS)并存储该视频(解密后)以供以后查看.我已经制作了一个演示M3U8文件的演示,但我想下载视频数据供以后查看.