FFMPEG:以原始播放速率流式传输文件

saj*_*jad 5 networking vlc-media-player ffmpeg streaming video-streaming

我想使用ffmpeg以原始帧速率将文件流式传输到网络;所以我可以使用一些接收器客户端(如VLC )播放生成的 UDP 流。我使用了这个命令:

ffmpeg -i "myfile.mpg" -sameq -re -f mpegts "udp://127.0.0.1:2000"

通过使用此命令,ffmpeg 开始以非常高的速率流式传输文件;这样大约 30 分钟长度的文件的流传输就在大约 40 秒后完成。我想以原始速率查看文件。此外,我想控制视频的播放速度以更快或更慢地播放。有没有办法做到这一点?谢谢你。

llo*_*gan 4

-re应该用作输入选项,否则它可能会被忽略。基本语法的概括是:

ffmpeg [input options] -i input [output options] output
Run Code Online (Sandbox Code Playgroud)

不使用-sameq。有关详细解释,请参阅Sameq 并不意味着“相同质量” 。

您是否尝试过简单地复制流而不是重新编码?添加-map 0 -codec copy为输出选项。

至于改变视频速度,您可以尝试setpts多媒体过滤器。请注意,您必须重新编码才能使用此过滤器。文档中的示例:

Apply fast motion effect: -filter:v setpts=0.5*PTS
Apply slow motion effect: -filter:v setpts=2.0*PTS
Run Code Online (Sandbox Code Playgroud)

对于音频,请参阅asetptsatempo过滤器。