使用 VLC 流式传输时增加 fps 并减少持续时间

Posted

技术标签:

【中文标题】使用 VLC 流式传输时增加 fps 并减少持续时间【英文标题】:Increasing fps & decreasing duration while streaming using VLC 【发布时间】:2017-08-20 12:38:34 【问题描述】:

你好 *** :3

我一直在尝试提高 fps 并有效地减少持续时间,同时提高使用 vlc 从我的硬盘驱动器流式传输视频的速度。如果可能,我想流式传输时进行转码。我已经可以在流式传输之前加速视频,但这不是我们想要的任务。

我经常用来串流的命令是(注意xxx.xxx.x.xxx代表我的ip):

vlc --intf dummy -vvv /Users/amr/Downloads/bigbangsample.mp4 --sout '#rtpdst=127.0.0.1,port=1234,sdp=rtsp://xxx.xxx.x.xxx:1236/test.sdp'

遵循Change Frames Per Second for VLC Stream 的提示后,我尝试使用以下命令进行转码:

vlc --intf dummy -vvv /Users/amr/Downloads/bigbangsample.mp4 --sout='#transcodefps=60:rtpdst=127.0.0.1,port=1234,sdp=rtsp://xxx.xxx.x.xxx:1236/test.sdp'

虽然我仍然可以在没有警告或错误的情况下观看视频流,但视频似乎根本没有受到影响。

我不确定我的命令是否错误,或者 fps 是否确实已更改但通过复制帧以保持持续时间相同。我是 vlc 和视频处理的新手,如果有任何意见,我将不胜感激。

更新: ffprobe(见下文)似乎表明 fps 没有改变。有没有标准的方法来改变流 fps?

Input #0, rtsp, from 'rtsp://xxx.xxx.x.xxx:1236/test.sdp':

  Metadata:
    title           : Unnamed
    comment         : N/A
  Duration: N/A, start: 21.377938, bitrate: N/A
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp
    Stream #0:1: Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 720x404 [SAR 1:1 DAR 180:101], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc

感谢您的宝贵时间。

【问题讨论】:

嗨,我认为你必须添加vcodec,即使它是相同的。所以试试vlc --intf dummy -vvv /Users/amr/Downloads/bigbangsample.mp4 --sout='#transcodevcoded=h264,fps=60:rtpdst=127.0.0.1,port=1234,sdp=rtsp://xxx.xxx.x.xxx:1236/test.sdp' (worked for me at list) 【参考方案1】:

我认为您必须添加vcodec,即使它是相同的。所以试试

vlc --intf dummy -vvv /Users/amr/Downloads/bigbangsample.mp4 --sout='#transcodevcodec=h264,fps=60:rtpdst=127.0.0.1,port=1234,sdp=rtsp://xxx.xxx.x.xxx:1236/test.sdp'

(至少对我有用)

【讨论】:

是的,它仍然在流式传输,但是如果您观看流式传输,或者以 ffprobe 的形式播放它,它仍然以常规 fps(大约 24-30)播放,或者您还得到了什么? (很酷的个人资料图片顺便说一句 XD) 谢谢:),我在 mpeg 文件上尝试过,它可以工作(改变 fps),如果vlc 不起作用,也许你可以使用ffmpeg 命令。 嗯,很有趣。我将在 mpeg 文件上尝试一下 - 你有没有在 avi 或 mp4 文件上尝试过?

以上是关于使用 VLC 流式传输时增加 fps 并减少持续时间的主要内容,如果未能解决你的问题,请参考以下文章

使用 vlc 将 mp4 流式传输到 html 浏览器

使用 RaspberryPi 摄像头流式传输 H264

使用 HTTP Post 从客户端流式传输数据

如何使用 swift 仅在已知持续时间内流式传输音频

既然不再支持 VLC 插件,如何在 Firefox 和 Chrome 中流式传输 RTSP 实时视频?

将 mp3 从服务器流式传输到 html5 音频时传递持续时间