标签: http-live-streaming

FFMPEG mp4来自http直播m3u8文件?

如何从http直播流媒体m3u8文件中提取mp4?我在下面尝试了这个命令:

ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4
Run Code Online (Sandbox Code Playgroud)

我接受了这个错误:

[NULL @ 0000000002f07060]数据包标头未包含在全局extradata,损坏的流或无效的MP4/AVCC比特流中无法打开带有编解码器副本的流0的比特流过滤器h264_mp4toannexb:I

ffmpeg http-live-streaming

63
推荐指数
2
解决办法
10万
查看次数

使用FFmpeg在iOS上编写时将fMP4转码为HLS

TL; DR

我想将fMP4片段转换为TS段(用于HLS),因为片段是在iOS设备上使用FFmpeg编写的.

为什么?

我正在尝试在iOS上实现实时上传,同时在本地保持无缝的高清副本.

我试过的

  1. 滚动AVAssetWriters,每次写入8秒,然后通过FFmpeg连接MP4.

    出了什么问题 - 音频和视频有时会出现问题.我已经确定了3个原因.

    1)为AAC编码器写入的音频启动帧,从而产生间隙.

    2)由于视频帧长33.33ms,音频帧长0.022ms,因此它们可能不在文件末尾排队.

    3)Mac OS上缺少帧精确编码,但iOS 详细信息不适用于此

  2. FFmpeg将具有原始音频的大视频MP4文件复用到TS段中.这项工作基于Kickflip SDK

    什么是错的 - 每隔一段时间,只有一个音频文件会上传,没有任何视频.永远不能在内部重现它,但当他们没有记录他们认为他们做的事情时,它对我们的用户来说非常令人沮丧.在最后一段上也存在准确搜索的问题,几乎就像TS段的时间戳错误一样.

我现在在想什么

苹果公司今年(2016年)正在WWDC推动fMP4,在此之前我还没有对它进行太多调查.由于fMP4文件可以在写入读取和播放,我认为FFmpeg也可以在写入时对文件进行转码,只要我们阻止将字节发送到FFmpeg直到每个片段内文件完成了.

但是,我对FFmpeg C API并不熟悉,我只是在尝试#2中简单地使用它.

我需要你什么

  1. 这是可行的解决方案吗?有人对fMP4足够熟悉,知道我是否真的可以做到这一点?
  2. 我怎么知道AVFoundation已经完成在文件中写一个片段,以便我可以将它管道输入FFmpeg?
  3. 如何从磁盘上的文件中获取数据,一次块,将其传递给FFmpeg并让它吐出TS段?

ffmpeg avfoundation http-live-streaming ios fmp4

57
推荐指数
1
解决办法
1774
查看次数

HTTP LIve Streaming

好吧,我一直试图围绕这个http直播流媒体.我只是不明白,是的,我已经阅读了所有的苹果文档并观看了wwdc视频,但仍然非常困惑,所以请帮助一个想成为一个程序员!

你写的代码在服务器上?不是在xcode?如果我是对的,我如何设置它?我需要在服务器上设置一些特殊的东西吗?喜欢php还是什么?如何使用Apple .. segmenter等提供的工具?

请帮帮我,谢谢

video-streaming http-live-streaming ios

54
推荐指数
2
解决办法
4万
查看次数

在iOS中实现HTTP直播流

我想写一个小的iOS视频客户端,并且必须使用HTTP Live Streaming.视频来自支持HTTP直播流的Wowza媒体服务器,因此服务器端实现不是我的问题.我已经观看了WWDC视频,并阅读了有关HTTP直播的Apple文档.

但是没有人解释如何在iOS设备上播放视频.在WWDC中,有人提到有三个组织可以显示视频:

  • UIWebView的
  • 的MPMoviePlayerController
  • AVPlayerItem

哪一个是最好的?

我如何从像这样的HTML页面中读出视频URL,这些是由服务器提供的?

<html>
<head>
    <title>HTTP Live Streaming Example</title>
</head>
<body>
    <video
        src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
        height="300" width="400"
    >
    </video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

(来源:Apple HTTP直播流媒体概述)

我真的不知道从哪里开始编码......也许有人比烦人的"Stitched Stream Player"知道更好的示例代码,或者可以写一点教程......

html iphone video http-live-streaming ios

53
推荐指数
2
解决办法
5万
查看次数

HLS和MPEG-DASH有什么区别?

似乎两个协议都做同样的事情,但是一个优势是否优于另一个?

streaming http-live-streaming mpeg-dash

40
推荐指数
3
解决办法
5万
查看次数

使用HTML视频标记播放m3u8文件

我正在尝试使用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)

html streaming http-live-streaming html5-video m3u8

39
推荐指数
6
解决办法
16万
查看次数

从AVPlayer获取HLS的PCM数据

过去几年似乎几次都没问过这个问题,但没有人回答这个问题.我正在尝试从HLS处理PCM数据,我必须使用AVPlayer.

这篇文章点击本地文件 https://chritto.wordpress.com/2013/01/07/processing-avplayers-audio-with-mtaudioprocessingtap/

这个点击工作与远程文件,但不与.m3u8 hls文件. http://venodesigns.net/2014/01/08/recording-live-audio-streams-on-ios/

我可以在播放列表中播放前两个曲目,但它不会启动所需的回调来获取pcm,当文件是本地或远程(不是流)我仍然可以得到pcm但是它是hls不工作而我需要HLS工作

这是我的代码

//avplayer tap try
- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL*testUrl= [NSURL URLWithString:@"http://playlists.ihrhls.com/c5/1469/playlist.m3u8"];

    AVPlayerItem *item = [AVPlayerItem playerItemWithURL:testUrl];
    self.player = [AVPlayer playerWithPlayerItem:item];

    // Watch the status property - when this is good to go, we can access the
    // underlying AVAssetTrack we need.
    [item addObserver:self forKeyPath:@"status" options:0 context:nil];

}

-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
    if(![keyPath isEqualToString:@"status"])
        return;

    AVPlayerItem *item = (AVPlayerItem *)object;
    if(item.status != AVPlayerItemStatusReadyToPlay)
        return;

    NSArray *tracks = [self.player.currentItem tracks]; …
Run Code Online (Sandbox Code Playgroud)

audio pcm http-live-streaming ios avplayer

33
推荐指数
1
解决办法
1521
查看次数

如何获取YouTube直播视频的实际视频网址?

有没有办法获取像这样的YouTube直播流的HLS URL https://www.youtube.com/embed/WVZpCdHq3Qg

我尝试了典型的get_video_info方法以及付费服务(http://ytapi.gitnol.com/),但它们似乎不适用于实时流.

youtube youtube-api http-live-streaming youtube-data-api youtube-livestreaming-api

28
推荐指数
3
解决办法
9万
查看次数

如何在所有PC浏览器中播放m3u8播放列表?

默认情况下,m3u8文件可以在Mac Safari浏览器中播放,但不能在任何其他桌面浏览器中播放.在所有浏览器中都需要做些什么来支持HTML5和非HTML5?

http-live-streaming

27
推荐指数
3
解决办法
7万
查看次数

如何使用ffmpeg最小化实时流媒体的延迟

我有个问题.我想从我的网络摄像头用ffmpeg进行直播.

  1. 我启动了ffserver并且它可以工作.
  2. 从另一个终端我使用此命令启动ffmpeg流,它可以工作:

    sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在我的配置文件中,我有这个流:

    <Stream test.webm>
    Feed feed1.ffm
    Format webm
     NoAudio
     VideoCodec libvpx
     VideoSize 720x576
     VideoFrameRate 25
     # Video settings
        VideoCodec libvpx
        VideoSize 720x576           # Video resolution
        VideoFrameRate 25           # Video FPS
        AVOptionVideo flags +global_header  # Parameters passed to encoder 
                                        # (same as ffmpeg command-line parameters)
        AVOptionVideo cpu-used 0
        AVOptionVideo qmin 10
        AVOptionVideo qmax 42
        #AVOptionVideo quality good
        PreRoll 5
         StartSendOnKey
        VideoBitRate 400            # Video bitrate
     </Stream>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我用它启动流

    ffplay …

streaming ffmpeg delay http-live-streaming webm

27
推荐指数
4
解决办法
6万
查看次数