首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从分段的mp4中创建没有声音缺陷的http实时流(广播)

如何从分段的mp4中创建没有声音缺陷的http实时流(广播)
EN

Stack Overflow用户
提问于 2019-02-11 15:32:37
回答 1查看 823关注 0票数 1

将独立的短视频连接到hls播放列表中会产生声音缺陷。连接点处的“滴答声”。我该怎么避免呢?

我有一个进程,每3秒发出一个4秒的MOV视频。这些4s视频是较长视频的片段。但他们完全独立。我希望能够在视频存在之前播放更长的视频。为了实现这一点,我创建了一个HLS甚至播放列表hls事件播放列表,我首先通过运行以下命令,使用ffmpeg将第一个4s视频转换为hls:

代码语言:javascript
复制
fmpeg -y -i  output0.mov -c:a aac -b:a 128000 -r:a 44100 -c:v libx264  -x264-params keyint=150:scenecut=0  -hls_flags omit_endlist -hls_playlist_type -b:t 800k -maxrate 2000k -bufsize 1200k -f hls -pix_fmt yuv420p -g 5 -hls_time 5 one.m3u8

这将创建一个.ts文件和一个.m3u8播放列表。

代码语言:javascript
复制
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:4
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:4.00,
part1.ts

注意:-hls_flags omit_endlist -hls_playlist_type event标志。它们确保播放列表是事件播放列表,并且列表末尾没有EXT-X-ENDLIST (这使得播放器开始轮询.m3u8文件,以便“等待”添加到播放列表中的新.ts块)。

当下一个4s视频可用时,我将再次运行ffmpeg命令。然后将新的.m3u8文件“合并”到旧的.m3u8文件。将新的.ts文件追加到播放列表中。

代码语言:javascript
复制
#EXT-X-PLAYLIST-TYPE:EVENT
#EXT-X-TARGETDURATION:4
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:4.00,
part1.ts <- first 4 seconds chunk
#EXTINF:4.00,
part2.ts <- second ( new ) 4 second chunk

由于播放机正在轮询.m3u8文件,当其更新时,它将获取第二个.ts文件( plays 2.ts)并播放它。

唯一的问题是声音的缺陷。就在这两个视频的连接点。(在第二个4)在这个例子中。这个视频没有明显的缺陷。我怀疑这是因为编码问题。(每个移动视频都分别编码到hls ),但我必须在4秒后播放该视频。(等不及整个时间准备好了)

我做错什么了?如何对hls块进行编码以避免声音缺陷?

在ffmpeg文档中,我看到:分段输入文件,并创建一个M3U8活动播放列表(可以用作live源):

代码语言:javascript
复制
ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
-segment_list_flags +live -segment_time 10 out%03d.mkv

我的问题是我没有全部的视频。它一片一片地生成。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 17:48:12

问题是,AAC不是一个友好的格式,只是将单独编码的部分连接在一起。AAC总是1024个样本的倍数。如果您的音频块恰好是1025样本,则生成的编码将被填充到2048,您将得到1023个沉默样本。通常你根本不知道那里有多少寂静。因此,您必须使ffmpeg编码过程对所有块保持活动。如果您在Unix上,创建一个名称管道,将您的视频输入到您的命名管道中,并让ffmpeg读取名称管道。

代码语言:javascript
复制
mkfifo my_pipe
cat my_file > my_pipe
ffmpeg -re -i my_pipe // and some more
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54633953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档