ffmpeg - FFmpeg 帧率问题

标签 ffmpeg

当我尝试使用 ffmpeg 流式传输 m3u8 或 .ts 文件时,出现了一个奇怪的错误。

当我在 ffmpeg 中流式传输此行时: C:/ffmpeg/bin/ffmpeg.exe -i "http://myurl.com/myfile.ts" -vcodec libx264 -preset veryfast -vprofile main -vb 1000k -s 720x400 -aspect 16:9 -acodec libvo_aacenc -ab 64k -ar 48000 -ac 2 -r 30 -f flv "rtmp://myurl.com/mystream"

当我运行此命令时,帧速率不是 30 fps,而是多次超过 100 fps。

像这样
frame= 107 fps=0.0 q=31.0 size= 469kB time=00:00:04.40 bitrate= 871.6kbits/<br> frame= 186 fps=163 q=30.0 size= 873kB time=00:00:07.54 bitrate= 948.5kbits/<br> frame= 246 fps=149 q=31.0 size= 1225kB time=00:00:09.97 bitrate=1006.1kbits/<br> frame= 327 fps=152 q=31.0 size= 1647kB time=00:00:13.23 bitrate=1019.2kbits/<br> frame= 425 fps=160 q=28.0 size= 1938kB time=00:00:17.07 bitrate= 929.5kbits/<br> frame= 476 fps=151 q=28.0 size= 2261kB time=00:00:19.16 bitrate= 966.4kbits/<br> frame= 527 fps=144 q=29.0 size= 2623kB time=00:00:21.21 bitrate=1012.9kbits/<br> frame= 618 fps=148 q=28.0 size= 2989kB time=00:00:24.86 bitrate= 984.7kbits/<br> frame= 688 fps=147 q=27.0 size= 3308kB time=00:00:27.63 bitrate= 980.6kbits/<br> frame= 739 fps=143 q=29.0 size= 3726kB time=00:00:29.70 bitrate=1027.5kbits/<br> frame= 770 fps= 49 q=30.0 size= 3974kB time=00:00:31.00 bitrate=1050.0kbits/<br> frame= 849 fps= 53 q=30.0 size= 4464kB time=00:00:34.14 bitrate=1071.0kbits/<br> frame= 944 fps= 57 q=29.0 size= 4834kB time=00:00:37.98 bitrate=1042.5kbits/<br> frame= 1037 fps= 61 q=29.0 size= 5252kB time=00:00:41.56 bitrate=1035.0kbits/<br> frame= 1104 fps= 63 q=29.0 size= 5689kB time=00:00:44.25 bitrate=1053.1kbits/<br> frame= 1192 fps= 66 q=30.0 size= 6186kB time=00:00:47.81 bitrate=1059.8kbits/<br>

有人可以帮我解决这个错误吗?现在输出真的很糟糕。

提前致谢。

最佳答案

这是它编码的fps数量,而不是输出的帧速率。您的输出是乱码,因为您以最大速度泵送它。

对非实时输入流使用-re选项以 native 帧速率读取并实时输出:

C:/ffmpeg/bin/ffmpeg.exe -re -i "http://myurl.com/myfile.ts"...

-re (input)

Read input at native frame rate. Mainly used to simulate a grab device. or live input stream (e.g. when reading from a file). Should not be used with actual grab devices or live input streams (where it can cause packet loss). By default ffmpeg attempts to read the input(s) as fast as possible. This option will slow down the reading of the input(s) to the native frame rate of the input(s). It is useful for real-time output (e.g. live streaming).

Docs

关于ffmpeg - FFmpeg 帧率问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32248722/

相关文章:

c# - 如何摆脱 .Net C# 中的 ffmpeg.exe 黑色终端?

c - 使用 libav (ffmpeg) 将 RGB 转换为 YUV 使图像一式三份

ruby-on-rails - 安装 ffmpeg

python - 如何在python ffmpeg中组合2个流

php - 如何为 PHP 安装 ffmpeg

video - 如何使用 ffmpeg 每 15 秒将 10 秒的无声音频(没有图像或视频或黑色视频的空音频)插入视频重复?

iphone - iphone sdk中的ffmpeg集成错误?

animation - 如何使用ffmpeg从一个高度为0到100%动画的静止图像制作视频,

video - 如何解码从 yuv444p 帧编码的 h264 视频?

javascript - Node 生成子进程在 aws Node 10 lambda 中的 exec 子进程之后不执行命令