当 Ffmpeg 将 HLS 转换为 MPEGTS 时,帧和大小随着速度的降低而增加

如何解决当 Ffmpeg 将 HLS 转换为 MPEGTS 时,帧和大小随着速度的降低而增加

我一直在尝试使用 ffmpeg 以编程方式将 HTTP 实时流转换为 mpegt。我尝试过的所有 HLS 都在远程服务器上,并且在此特定提要之前一切正常。正如您在日志中看到的那样,帧数不断增加 150,结果大小也随之增加。同时,速度降低。这是我使用的代码ffmpeg -i http://xxxxxxxx-xxxxxxx-xx.m3u8 -y -r 100 -vcodec libx264 -f mpegts -preset ultrafast -tune zerolatency -t 00:10:00.500 /home/xxxx-xxxxxx/app/backend/queues/../files/output.mpegts 我尝试了从 30 开始到 100 的不同 fps。我注意到帧数和大小继续与 fps 成正比增加。有没有更好的方法来重新编码这种流。我正在使用 fluent-ffmpeg,但我还没有弄清楚如何应用 nobuffer 选项,但我不确定这是否能解决问题。

[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxx-xxx99.ts' for reading
Input #0,hls,applehttp,from 'http://xxxxxxxxxxxxxxxx-xxxxxxxx.m3u8':
  Duration: N/A,start: 28505.278111,bitrate: N/A
  Program 0 
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B),yuv420p,320x240 [SAR 1:1 DAR 4:3],25 fps,25 tbr,90k tbn,50 tbc
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop,[?] for help
[libx264 @ 0x1dc0ea0] using SAR=1/1
[libx264 @ 0x1dc0ea0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x1dc0ea0] profile Constrained Baseline,level 3.0
Output #0,mpegts,to '/home/xxxxx-xxxxxx-xxx/app/backend/queues/../files/output.mpegts':
  Metadata:
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264),q=-1--1,100 fps,100 tbc
    Metadata:
      variant_bitrate : 0
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx100.ts' for reading
frame=  149 fps=0.0 q=24.0 size=     239kB time=00:00:05.92 bitrate= 331.0kbits/s speed=9.52x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx101.ts' for reading
frame=  299 fps= 59 q=25.0 size=     256kB time=00:00:11.92 bitrate= 175.9kbits/s speed=2.35x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx102.ts' for reading
frame=  449 fps= 43 q=24.0 size=     512kB time=00:00:17.92 bitrate= 234.1kbits/s speed=1.72x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx103.ts' for reading
frame=  599 fps= 38 q=22.0 size=     768kB time=00:00:23.92 bitrate= 263.0kbits/s speed=1.52x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx104.ts' for reading
frame=  749 fps= 35 q=22.0 size=    1024kB time=00:00:29.92 bitrate= 280.4kbits/s speed=1.42x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx105.ts' for reading
frame=  899 fps= 28 q=23.0 size=    1280kB time=00:00:35.92 bitrate= 291.9kbits/s speed=1.12x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx106.ts' for reading
frame= 1049 fps= 25 q=23.0 size=    1536kB time=00:00:41.92 bitrate= 300.2kbits/s speed=0.998x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx107.ts' for reading
frame= 1199 fps= 28 q=24.0 size=    1792kB time=00:00:47.92 bitrate= 306.3kbits/s speed=1.11x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx108.ts' for reading
frame= 1349 fps= 28 q=25.0 size=    2048kB time=00:00:53.92 bitrate= 311.2kbits/s speed=1.11x    
Past duration 0.999992 too large
    Last message repeated 6 times
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx109.ts' for reading
frame= 1499 fps= 28 q=23.0 size=    2048kB time=00:00:59.64 bitrate= 281.3kbits/s speed=1.11x    
[hls,applehttp @ 0x1d97f60] opening 'http://xxxxxxxxxxxxxxxx-xxxxx110.ts' for reading
frame= 1649 fps= 28 q=24.0 size=    2304kB time=00:01:05.64 bitrate= 287.5kbits/s speed=1.11x    
[http @ 0x23b86e0] HTTP error 404 Not Found
[hls,applehttp @ 0x1d97f60] Failed to reload playlist 0
[http @ 0x23b86e0] HTTP error 404 Not Found
[hls,applehttp @ 0x1d97f60] Failed to reload playlist 0
frame= 1799 fps= 13 q=24.0 size=    2560kB time=00:01:11.64 bitrate= 292.7kbits/s speed=0.523x    
[http @ 0x23b86e0] HTTP error 404 Not Found
[hls,applehttp @ 0x1d97f60] Failed to reload playlist 0
frame= 1800 fps= 13 q=24.0 size=    2560kB time=00:01:11.68 bitrate= 292.6kbits/s speed=0.514x    
[http @ 0x1e34ea0] HTTP error 404 Not Found
[hls,applehttp @ 0x1d97f60] Failed to reload playlist 0
frame= 1800 fps= 13 q=24.0 size=    2560kB time=00:01:11.68 bitrate= 292.6kbits/s speed=0.512x    
frame= 1800 fps= 13 q=24.0 Lsize=    2756kB time=00:01:11.68 bitrate= 315.0kbits/s speed=0.512x    
video:2359kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 16.855715%
[libx264 @ 0x1dc0ea0] frame I:8     Avg QP:20.62  size: 21713
[libx264 @ 0x1dc0ea0] frame P:1792  Avg QP:23.84  size:  1251
[libx264 @ 0x1dc0ea0] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x1dc0ea0] mb P  I16..4:  0.2%  0.0%  0.0%  P16..4: 32.8%  0.0%  0.0%  0.0%  0.0%    skip:67.0%
[libx264 @ 0x1dc0ea0] coded y,uvDC,uvAC intra: 83.7% 62.6% 40.9% inter: 12.7% 15.3% 7.9%
[libx264 @ 0x1dc0ea0] i16 v,h,dc,p: 26% 29% 31% 14%
[libx264 @ 0x1dc0ea0] i8c dc,v,p: 58% 20% 14%  8%
[libx264 @ 0x1dc0ea0] kb/s:1073.41

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?