我想先说明一下,我对ffmpeg非常非常陌生,对ffserver更是新手。
我怎么也弄不动这东西。我得到:
"Too large number of skipped frames 882933314374 > 60000"
同时,ffplay给出了first frame is no keyframe
这是我的ffserver.conf文件
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 1000
MaxClients 10
MaxBandwidth 2000000
NoDefaults
###############################################################################################
<Feed test.ffm>
File /tmp/test.ffm
FileMaxSize 10000M
ACL ALLOW localhost
</Feed>
<Stream status.html>
Format status
# Only allow local people to get the status
ACL allow localhost
</Stream>
<Stream test.avi>
Feed test.ffm
Format avi
ACL ALLOW localhost
ACL ALLOW 192.168.1.0
NoAudio
VideoSize 3840x2160
VideoFrameRate 30
Preroll 10
</Stream>
###############################################################################################
这里是我的ffmpeg命令
ffmpeg -i smaller.avi http://localhost:8090/test.ffm
我一整天都在和这个东西斗争,像个疯子一样搜索。我做错了什么?欢迎大家踊跃帮助。
这些是我的笔记,因为我目前正在经历一个类似的过程:
来自ffserver的树莓派视频流-未优化
遵循这个教程:(我知道人们不喜欢链接,但这个tut工作)https://oscarliang.com/webcam-streaming-video-raspberry-pi-via-browser/
下载ffmpeg for windows(或linux)
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
//首先保持ffserver.conf的简单性
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 1000
MaxClients 10
MaxBandwidth 2000000
NoDefaults
###############################################################################################
<Feed test.ffm>
File /tmp/test.ffm
FileMaxSize 10M
</Feed>
<Stream test.avi>
Feed test.avi
Format mjpeg
VideoSize 640x480
VideoFrameRate 20
VideoBitRate 2000
VideoQMin 2
VideoQMax 10
</Stream>
把终点放在http://<localhost>/webcam.mjpeg
确保webcam.sh包含:
ffserver -f /etc/ffserver.conf
& ffmpeg -v verbose
-r 30
-s 640x480
-f video4linux2
-i /dev/video0 http://localhost/webcam.ffm
执行如下命令:
//使用下面的代码代替vlc,因为它有更快的流
赢得:ffplay.exe http://localhost/webcam.mjpeg
Linux:ffplay http://localhost/webcam.mjpeg