gpt4 book ai didi

encoding - MPEG-TS 分段 HTTP 实时流

转载 作者:行者123 更新时间:2023-12-04 22:46:47 31 4
gpt4 key购买 nike

我试图交错 MPEG-TS 片段但失败了。一组片段实际上是使用笔记本电脑中的内置摄像头捕获的,然后使用 FFMPEG 和以下命令进行编码:

ffmpeg -er 4 -y -f video4linux2 -s 640x480 -r 30 -i %s -isync -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 640x480 -vcodec libx264 -fflags +genpts -b 386k -coder 0 -me_range 16 -keyint_min 25 -i_qfactor 0.71 -bt 386k -maxrate 386k -bufsize 386k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -aspect 640:480

另一个是使用以下命令编码的 avi 文件:
fmpeg -er 4 -y -f avi -s 640x480 -r 30 -i ./DSCF2021.AVI -vbsf dump_extra -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 640x480 -vcodec libx264 -fflags +genpts -b 386k -coder 0 -me_range 16 -keyint_min 25 -i_qfactor 0.71 -bt 386k -maxrate 386k -bufsize 386k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -aspect 640:480

然后使用开源分段器将输出分段为 ts 段。

如果两者都来自同一个来源(都来自相机),它们工作正常。但是在这种情况下,第二组段卡住。时光荏苒,视频却一动不动。。
所以我认为这是一个编码问题。所以我的问题是,我应该如何更改 ffmpeg 命令才能使其正常工作?

通过交错,我的意思是,有一个带有第一组片段的播放列表,另一个带有另一组片段的播放列表,并且让客户端调用一个然后另一个(HTTP Live Streaming)

第一组段之一的 ffprobe 输出:
Input #0, mpegts, from 'live1.ts':
Duration: 00:00:09.76, start: 1.400000, bitrate: 281 kb/s
Program 1 Service01
Metadata:
name : Service01
provider_name : FFmpeg
Stream #0.0[0x100]: Video: h264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 29.92 fps, 29.92 tbr, 90k tbn, 59.83 tbc
Stream #0.1[0x101]: Audio: aac, 48000 Hz, stereo, s16, 111 kb/s

第二组段之一的 ffprobe 输出:
Input #0, mpegts, from 'ad1.ts':
Duration: 00:00:09.64, start: 1.400000, bitrate: 578 kb/s
Program 1 Service01
Metadata:
name : Service01
provider_name : FFmpeg
Stream #0.0[0x100]: Video: h264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x101]: Audio: aac, 48000 Hz, stereo, s16, 22 kb/s

谢谢,

最佳答案

我在该主题中看到了很多问题-请参阅:

  • HTTP Live Streaming MPEG TS segment
  • Update .m3u8 playlist file for HTTP Live streaming?

  • 我不确定确切的问题 - 但我认为大多数人提示当你混合来自两个来源的内容不同时,就会出现卡住。
    我认为如果 PTS 和/或 PCR 不连续并且玩家没有意识到这一点或冲洗它,则可能会出现这种情况。可能,您可以识别时间戳的顺序,并查看修复是否解决了问题。
    另见 3.3.11。的 https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-07 : EXT-X-不连续

    The EXT-X-DISCONTINUITY tag indicates an encoding discontinuity
    between the media segment that follows it and the one that preceded
    it. The set of characteristics that MAY change is:

    o file format
    o number and type of tracks
    o encoding parameters
    o encoding sequence
    o timestamp sequence


    因此,如果出现上述任何问题,播放列表文件中的不连续标志可能会有所帮助。请尝试其中一些,并提供更多详细信息。我想,这也会帮助很多其他人。

    关于encoding - MPEG-TS 分段 HTTP 实时流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635666/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com