V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zhengken
V2EX  ›  Linux

大家好,通过 ssh 远程连接 centos 服务器,服务器上有 WAV 音频,如何通过 play 命令 播放音频,使得本地也能听见声音,即 声音通过 ssh 传递到本地?

  •  
  •   zhengken · 2019-09-25 12:58:48 +08:00 · 9487 次点击
    这是一个创建于 1921 天前的主题,其中的信息可能已经有所发展或是发生改变。
    39 条回复    2019-09-26 19:30:41 +08:00
    5long
        1
    5long  
       2019-09-25 13:14:04 +08:00   ❤️ 1
    用 sshfs 把音频文件所在的目录挂载到本地, 然后再用本地的音频播放器去播放.
    zhengken
        2
    zhengken  
    OP
       2019-09-25 13:17:39 +08:00
    @5long 公司对音频数据是非常敏感的,挂载到本地估计不太行
    befovy
        3
    befovy  
       2019-09-25 13:23:06 +08:00
    既然都能 ssh 访问了,scp,sftp 这些也都开着吧? 找一个支持 sftp 协议的播放器在本地播放应该可以吧
    bitdust
        4
    bitdust  
       2019-09-25 13:24:58 +08:00
    python -m http.server 一下
    bitdust
        5
    bitdust  
       2019-09-25 13:25:45 +08:00
    python -m http.server 一下
    然后用浏览器打开网址,直接播放音频文件
    xiadong1994
        6
    xiadong1994  
       2019-09-25 13:30:51 +08:00 via iPhone
    只要能访问这个音频就能下载,不管是挂载还是 scp 还是 http server,都是下载
    dji38838c
        7
    dji38838c  
       2019-09-25 13:31:35 +08:00
    哈哈哈
    bitdust
        8
    bitdust  
       2019-09-25 13:35:06 +08:00
    @xiadong1994 是的,要么楼主提的是伪需求,要么他们公司的规定是伪需求。
    ssh 权限都给了,还不让下数据,防止数据泄漏,我觉得只有专人专机操作,隔离访问才能实现这个要求。
    est
        9
    est  
       2019-09-25 13:38:07 +08:00   ❤️ 3
    ssh [email protected] 'cat asdf.wav' > /dev/audio

    以上为示例代码。
    zhengken
        10
    zhengken  
    OP
       2019-09-25 13:52:31 +08:00
    @bitdust 不睡伪需求,sz scp 等这些命令是有监控的
    indev
        11
    indev  
       2019-09-25 13:54:40 +08:00
    可以试一下 mplayer,可以在 terminal 里播放音频,但不知道能不能通过 ssh
    zhengken
        12
    zhengken  
    OP
       2019-09-25 14:12:42 +08:00
    感谢大家的回复,谢谢,我会认真研究大家提出的解决方案
    Tianao
        13
    Tianao  
       2019-09-25 14:15:06 +08:00
    vi 打开手动从终端里复制?
    rwecho
        14
    rwecho  
       2019-09-25 14:41:59 +08:00 via Android
    soundwire 可行吗
    HuHui
        15
    HuHui  
       2019-09-25 14:44:13 +08:00 via Android
    脑回路清奇
    silencefent
        16
    silencefent  
       2019-09-25 14:44:24 +08:00
    打开服务器的蓝牙组件
    这边连接蓝牙
    播放 play
    ok
    muxueqz
        17
    muxueqz  
       2019-09-25 14:49:14 +08:00   ❤️ 1
    * 在本地开 pulseaudio,然后远程的机器作为 pulseaudio 客户端播放
    KylinJiang
        18
    KylinJiang  
       2019-09-25 15:05:33 +08:00
    建议和公司沟通一下,想要在本地播放,就意味着音频数据一定会传到本地的,就算所谓的远程播放,你在本地内录一下也是获得了文件数据,和 scp 没差的
    catcalse
        19
    catcalse  
       2019-09-25 15:10:36 +08:00
    yum install lrzsz
    sz .
    xnode
        20
    xnode  
       2019-09-25 15:15:27 +08:00
    这个需求有点扯淡,既然都能 ssh 了,还不能像下载,估计真正的需求是智能远程听 不能拷贝走
    jiezhi
        21
    jiezhi  
       2019-09-25 15:19:29 +08:00
    楼主是不是想偷听机密信息又怕被发现?

    要是公司提的听音频的需求,楼上很多技术方法都能实现
    araraloren
        22
    araraloren  
       2019-09-25 15:26:26 +08:00
    要能听到声音,你要么把文件传过来播放,要么把播放的声音传过来。。
    pkookp8
        23
    pkookp8  
       2019-09-25 16:00:42 +08:00 via Android
    声音是就是 buffer,送给声卡就变成了有效的声音,给文本文档打开就是乱码,送给显存刷新就是花屏
    你要远程听,那么就把原文件拿来,要么把解码后数据拿来。你看着哪个能做
    annielong
        24
    annielong  
       2019-09-25 16:08:11 +08:00
    不排除奇葩需求,可以服务器播放,另放一台单独的服务器开着麦克风录音,然后再传录音出来,
    jimrok
        25
    jimrok  
       2019-09-25 16:57:39 +08:00   ❤️ 5
    声音是无法传播到本地的,声音是扬声器上的电磁铁震动。你可以考虑将音频文件解码成模拟信号,模拟信号在编码成数字信号,然后变成文件流走 ssh 下载下来,再写一个程序把这个编码转换成标准的音频编码,扔进媒体播放程序,就可以听到了。所以,你直接把文件 scp 下来,就不用脱裤子放屁了。
    zhengken
        26
    zhengken  
    OP
       2019-09-25 17:56:18 +08:00
    @jiezhi 可以每次 使用 sz 命令下载到本地听,这样的话就像太麻烦了
    salmon5
        27
    salmon5  
       2019-09-25 20:47:19 +08:00
    远程搞一台 windows,sshfs 把音频挂载到 windows,用远程桌面播放远程到本地
    LFUNWF
        28
    LFUNWF  
       2019-09-25 21:41:04 +08:00 via Android   ❤️ 1
    xrdp 远程登录可以实现。百度搜索“xrdp 声音”,简书有一篇我写的小作文,有详细描述。
    happy7902
        29
    happy7902  
       2019-09-26 01:20:11 +08:00 via iPhone
    要能听到声音,你要么把文件传过来播放,要么把播放的声音传过来。。

    高手,这是高手!
    futouyiba
        30
    futouyiba  
       2019-09-26 01:59:29 +08:00
    @LFUNWF 干货呀
    msg7086
        31
    msg7086  
       2019-09-26 02:01:12 +08:00
    wav 本身就已经是数字化的声波信号了。把 wav 在服务器上播放,然后转成数字信号,其实就是转回了 wav 文件而已。
    同样,要把服务器的声音传到本地,其实就是把 wav 的内容传过来而已。

    所以最后就变成,只要你能听到声音,就是把 wav 里的数据传过来了。
    realpg
        32
    realpg  
       2019-09-26 08:13:04 +08:00
    @zhengken #10
    scp 程序复制一份叫 httpd
    Vegetable
        33
    Vegetable  
       2019-09-26 09:55:11 +08:00
    使用 baidupcsgo 上传到百度云 /狗头
    Vegetable
        34
    Vegetable  
       2019-09-26 10:06:22 +08:00
    百分之百可行的方案,把本地终端回滚大小设置为足够大,然后 cat audio.wav|base64,将输出复制到本地 decode,得到 wav 文件
    hell0v2
        35
    hell0v2  
       2019-09-26 10:18:33 +08:00
    换个思路,scp 监控,用个不监控的命令把他搞下来不就行了么,不行实现个 scp 命令?
    hell0v2
        36
    hell0v2  
       2019-09-26 10:19:47 +08:00
    @Vegetable 这思路 666 简单可行
    VZXXBACQ
        37
    VZXXBACQ  
       2019-09-26 13:41:24 +08:00
    能听到肯定就是一种“下载”了,无论是走 http 还是什么。老老实实申请权限吧。
    Ehco1996
        38
    Ehco1996  
       2019-09-26 15:48:09 +08:00
    @Tianao 思路清奇 666
    winglight2016
        39
    winglight2016  
       2019-09-26 19:30:41 +08:00
    如果音频文件比较小的话( 1k 以内),我这里有一个解决方案:
    1.把音频文件编码成文本
    2.把文本编码成二维码
    3.把二维码打印到 ssh 窗口
    4.编写手机端解码 APP,然后扫码播放
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:49 · PVG 08:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.