Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 如何更改FFMPEG命令以提高HTTP实时流的效率?_Audio_Video_Ffmpeg_Http Live Streaming_Transport Stream - Fatal编程技术网

Audio 如何更改FFMPEG命令以提高HTTP实时流的效率?

Audio 如何更改FFMPEG命令以提高HTTP实时流的效率?,audio,video,ffmpeg,http-live-streaming,transport-stream,Audio,Video,Ffmpeg,Http Live Streaming,Transport Stream,我希望在使用FFMPEG创建.ts文件时减少muxing开销 Im使用创建一系列用于的文件 我的输入为ismv格式,包含视频和音频流: Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240, 348 kb/s, 29.97 tbr, 10000k tbn, 59.94 tbc Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, ste

我希望在使用FFMPEG创建.ts文件时减少muxing开销

Im使用创建一系列用于的文件

我的输入为ismv格式,包含视频和音频流:

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240, 348 kb/s, 29.97 tbr, 10000k tbn, 59.94 tbc
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s
有一个与此相关的问题,它会导致向流中添加大量开销。以下是音频中向我描述的问题:

因此,对于给定的aac流,开销将为88%(因为200字节将映射到2 x 188字节的数据包)

对于视频,iframe数据包非常大,因此它们可以很好地转换为.ts数据包,但是,差异可以像音频数据包一样小,因此它们也会遇到同样的问题


解决方案是在将多个aac数据包打包成.ts之前,将它们组合成一个更大的流。这是否可能是FFMPEG的开箱即用?

这是不可能的。编解码器依赖于封装容器进行成帧,这意味着向帧的开始和长度发送信号

您的图形实际上遗漏了一个元素,即PES数据包。您的音频帧将首先放入PES数据包(表示其长度),然后PES数据包将被切割成更小的块,这些块将成为TS数据包

根据设计,您不能在已经包含数据的TS数据包中启动新的PES数据包(在您的案例中包含音频帧)。新的PES数据包将始终在新的TS数据包中启动。否则就不可能开始播放中流(广播位置)-不可能知道新PES从TS中的哪个字节开始(请记住,您错过了当前PES的开头)


有一些缓解因素,网络硬件可能会压缩
FF FF
填充。另外,如果您使用HTTP(而不是UDP或RDP),则可以启用gzip压缩(但我怀疑它会有多大帮助)。

我已修复了在中的每个帧上同步TS输出的最严重问题-请尝试之后的版本。

FFMPEG中存在一些错误。一位同事在源代码中手动修复了这个问题,这大大减少了多路复用的开销(苹果的
mediastreamsegmenter
工具仍然更好)。我有一个类似的问题,我在ffmpeg数据库中打开了一个bug,你可以升级它。我也在考虑在这个问题上提供悬赏,如果你的流是音频流,你不需要将它多路复用成mpeg ts流。您可以将其保留在aac中,它仍然可以与HLS一起使用。喜欢这个图表,您使用了什么工具来创建它?@fishfood-Preview on Mac-I屏幕拍摄了一个白色区域,并在顶部绘制了文本和矩形。技术含量非常低:)
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240, 348 kb/s, 29.97 tbr, 10000k tbn, 59.94 tbc
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s