- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 ffmpeg 和 mplayer 的基准比较不同视频编解码器之间的延迟。
我正在使用此命令行生成和发送流:
ffmpeg -s 1280x720 -r 100 -f x11grab -i :0.0 -vcodec mpeg2video -b:v 8000 -f mpegts udp://localhost:4242
而且我成功地使用 ffplay 实时接收和阅读它:
ffplay -an -sn -i -fflags nobuffer udp://localhost:4242?listen
现在我不想使用 ffplay 播放流,而是想使用 mplayer 基准测试来获取有关延迟的一些信息:
mplayer -msglevel all=6 -benchmark udp://localhost:4242
但我得到的是这个输出:
Playing udp://localhost:4242.
get_path('sub/') -> '/home/XXXXX/.mplayer/sub/'
STREAM_UDP, URL: udp://localhost:4242
Filename for url is now udp://localhost:4242
Listening for traffic on localhost:4242 ...
Timeout! No data from host localhost
udp_streaming_start failed
No stream found to handle url udp://localhost:4242
我尝试使用 rtp 协议(protocol),但也没有用...
有人知道我做错了什么吗?
最佳答案
感谢您的回答,
我实际上尝试了很多不同的编解码器,尤其是 vp9、h264 和 mpeg2,但我得到的最好的低延迟是 mpeg2video。这是我使用的 3 个命令行。我阅读了 ffmpeg 流媒体指南和不同编解码器的编码指南,试图为每个指南获取最佳参数,但差异很明显:
ffmpeg -an -sn -s 1280x720 -r 30 -f x11grab -i :0.0 -vcodec libx264 -crf 18 -tune zerolatency -preset ultrafast -pix_fmt yuv420p -profile:v baseline -b:v 8000 -f mpegts threads 4 udp://127.0.0.1:4242
ffmpeg -s 1280x720 -r 30 -f x11grab -i :0.0 -vcodec mpeg2video -b:v 800k -f mpegts -threads 8 udp://127.0.0.1:4242
ffmpeg -t 5 -s 1280x720 -r 30 -f x11grab -i :0.0 -vcodec libvpx-vp9 -an -crf 18 -b:v 1M -f webm -threads 8 udp://127.0.0.1:4242
在本地主机上,我使用 mpeg2video 时几乎没有延迟,而使用 h264 时几乎有 1 秒的延迟。我听说 vp9 也可能有非常低的延迟,但我显然不知道如何使用 ffmpeg 中的选项,因为我得到非常糟糕的延迟值...
无论如何,回到主题,127.0.0.1 而不是 localhost 没有帮助,并且使用 ffmpeg://udp://ip:port 它也不起作用......:/我想我mplayer 上的配置可能有误。也许我应该尝试自己编译它。但实际上,我什至不知道 mplayer 是否会给我我想要的信息(编解码器编码/解码帧的平均毫秒数,以便我可以精确比较不同的编解码器)。
编辑:抱歉...ffmpeg://udp://ip_addr 有效 =) 我输入错误...n_n多谢。虽然,当我使用 mplayer 时,与 ffplay 相比,视频的质量真的很棒......
关于linux - mplayer 无法读取 udp 视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23114185/
问题:我找不到任何方法可靠地获取 MPlayer 播放列表中的当前播放文件。 这是我已经走了多远。这个有效的 ash 脚本监视一个带有当前播放列表路径的文本文件。当我更新文件时,脚本会关闭 MPlay
我正在尝试检查 mplayer 是否正在播放 mp3 文件。我目前使用 python 中的这一行 strace -p " + str(mplayer.pid) + " 2>&1 | head -n 2
我正在运行一个 bash 脚本,该脚本将根据来自 Arduino 的输入(开/关)使用 mplayer 播放视频。 当电影结束时,我需要在 txt 文件中获取时间戳。第一个问题是在 mplayer 从
引用 mplayer.conf: "配置文件在系统范围内从/etc/mplayer/mplayer.conf 读取 以及 ~/.mplayer/config 中的每个用户,其中每个用户设置覆盖 系统范
如果我有一个使用 mplayer 播放文件的脚本,并且我在播放到一半时停止了播放,有没有办法存储停止播放的位置? 最佳答案 试试这个它又快又脏,但在 mplayer 退出后给我播放歌曲的秒数 mpla
我正在尝试从 Java 应用程序以全屏模式在 MPlayer 中打开视频。我正在使用 ProcessBuilder 类将命令发送到 MPlayer。问题是,当我调用 MPlayer 播放视频时,没有任
考虑以下示例: import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from mplayer import * class
我花了一些时间来试验 MPlayer slave mode protocol :在自定义应用程序中,我有两个控件:一个用于改变音高,一个用于改变速度。 使用 MPlayer API 中的 scalet
我想每秒从视频创建缩略图,但由于某种原因 mplayer 跳帧。例如,在 200 万 49 秒时长 的视频中,我只有 59 个缩略图,而不是 169 个 我尝试过的:mplayer -nosound
我正在设置一台运行 OpenBSD 的计算机,我希望它可以播放所有我想要的音乐。我希望它基本上放在一个角落里,然后就可以了。问题是我想从任何地方控制它。我可以在我的计算机上使用 ssh 来做到这一点(
我像这样在从属模式下加载 mplayer: mplayer -slave -idle -input file=/tmp/pipe 管道文件包含: loadfile /mymusic/1.mp3 到目前
如何将 Mplayer 移植到 iOS?并使其支持 SMB? 我构建了ffmpeg,但另一件事是我不知道如何使这个支持smb。 我想要的是在 iOS 上开发一个支持 smb 的播放器。 最佳答案 我在
我有一个用 C 语言编写的程序,它用管道启动 mplayer,然后通过该管道控制 mplayer。似乎有时当我通过管道发送命令时它会崩溃。以下是我的代码的相关部分以及我对其进行的调试操作。 原代码:
创建命名管道。 mkfifo /tmp/mplayer-control 以从属模式运行 mplayer -slave -input file=/tmp/mplayer-control mymusic.
我可以更改 MPlayer 窗口的标题吗?我用这个命令播放视频: mplayer pinguin.mpg 最佳答案 mplayer -title "This is your title" (files
我正在寻找一个可以通过命令行或 STDIN 控制的音频播放器。 我一直在从属模式下使用 Mplayer,但它计算音频文件持续时间的方式存在一些错误,导致其无法使用。 有什么想法吗?理想情况下,我希望能
如何从多个流媒体网站之一观看电影?我想使用 mplayer,给定一个特定的 url。 例如: mplayer -url http://address 最佳答案 嗯,我也有同样的问题,我是这样解决的:
我想使用 mplayer 播放在线视频。我已经编写了一个非常简单的 python 代码来实现它。 import os link="https://www.someurl.com/somevideo.m
我需要永久改变视频的亮度和对比度,我试过这个: mplayer -vf eq=50:50 a.mp4 -dumpstream mv stream.dump b.mp4 但它保存为一个看起来像原始文件的
我正在用 Python 编写一个简单的前端来使用 mplayer(在子进程中)播放和录制互联网广播 channel (例如来自 shoutcast)。当用户单击一个站点时,将运行以下代码: url =
我是一名优秀的程序员,十分优秀!