帧率问题FFmpeg

时间:2015-08-27 11:56:09

标签: 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"

当我运行此命令时,帧率不是30fps,而是在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>

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

  

-re(输入)

     

以原生帧速率读取输入。主要用于模拟抓取装置。或实时输入流(例如,从文件中读取时)。   不应与实际抓取设备或实时输入流一起使用   (它可能导致数据包丢失)。默认情况下,ffmpeg尝试读取   输入尽可能快。这个选项会减慢速度   将输入读取到输入的本机帧速率。它   对于实时输出(例如直播)非常有用。

Docs