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

Ffmpeg hls实时流媒体-如何生成更短的片段

亢奇
2023-03-14

一直在通过HLS使用ffmpeg进行直播,并通过video.js播放它可以工作,但从流开始到实际开始播放之间有20秒的延迟。

ffmpeg -f x11grab -s 1280x720 -r 30 -i :0.0+nomouse -f alsa -ac 2 -i pulse -async 30 -vcodec libx264 -pix_fmt yuv420p -acodec libfdk_aac -ar 44100 -b:a 64k -threads 0 -s 640x360 -f hls -hls_time 1 -hls_list_size 1 -hls_allow_cache 0 /tmp/hls/#{@stream_name}/index.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:10
#EXTINF:8.333333,
index10.ts
#EXTINF:8.333333,
index11.ts
#EXTINF:8.333333,
index12.ts
#EXTINF:8.333333,
index13.ts
#EXTINF:2.366667,
index14.ts
#EXT-X-ENDLIST

共有1个答案

徐鸿文
2023-03-14

还必须指定关键帧间隔。又称GOP(组图)大小。

-g[time]

 类似资料:
  • 我想创建一个从一个设备到一个节点服务器的实时音频流,然后可以将该实时提要广播到几个前端。 我已经为此进行了广泛的搜索,并且真的碰壁了,所以希望有人能帮忙。 我能够得到我的音频输入从API。 然后将流传递给函数,该函数使用API创建createMediaStreamSource` 在我的函数中,我现在有一个对象,我可以流式处理它。 目前,我通过套接字连接以流的形式发送音频事件,如下所示: 这是最好的

  • 我正在研究Kinesis实时流媒体视频PoC。 我可以从android应用程序流视频到视频流,并调用python boto3 api('get_records')进行人脸检测。 在java/python api中从视频流生成帧的示例中有任何帮助/指针吗?

  • 我正在使用Google的YouTube API Explorer(备用)来查找属于其他人的任意流媒体广播的信息。 无论我在字段中输入了什么,我都会返回 这似乎很荒谬,考虑到视频显然是流媒体。 我突然想到,我可能误解了字段的说明,所以我尝试了几种不同的可能性。这些包括。。。 频道ID() 用户ID() 视频ID() ...每个都无济于事。 我如何询问一个频道有关其直播流视频的信息?这个问题在过去可以

  • 早些时候,我问了Flink一个简单的hello world示例。这给了我一些很好的例子! 然而,我想问一个更“流”的例子,我们每秒生成一个输入值。这在理想情况下是随机的,但即使每次都是相同的值也可以。 目标是获得一个无需/最少外部接触就能“移动”的流。 因此,我的问题是: 我发现如何显示这与外部生成数据和写入Kafka,或听一个公共源,但是我试图解决它与最小的依赖性(像在Nifi与Generate

  • 我想用不同的比特率和分辨率对MPEG-DASH的实时流进行编码,以便实时播放。 到目前为止,我发现的一切要么只使用源分辨率(灵活,nginx rtmp模块),要么似乎只用于VOD流媒体(DASHEncoder)。 是否可以将DASHEncoder与实时输入(rtmp流)一起使用,我将如何做到这一点?如果没有,是否可以将nginx-rtmp ffmpeg用于我想做的事情?

  • Flink版本:1.2.0 Scala版本:2.11.8 我想使用一个数据流来预测使用scala在flink中的模型。我在flink中有一个使用scala的DataStream[String],其中包含来自kafka源的json格式的数据。我想用这个数据流来预测已经训练过的Flink ml模型。问题是所有flink ml示例都使用DataSet api进行预测。我对flink和scala比较陌生,