我正在用PHP编写一个非常简单的基于浏览器的MP3播放器。该项目的一部分要求将每个 MP3 文件转换为WAV文件。PHP 中有一个函数,它允许您通过 shell 执行命令。对于我的项目,每当有人将歌曲上传到他们的帐户时,将执行以下命令:shell_exec
shell_exec('ffmpeg -i inputSong.mp3 outputSong.wav')
Run Code Online (Sandbox Code Playgroud)
因此,假设有 10 个不同的人在同一时间完成了歌曲的上传。Linux 服务器是同时执行 10 个 shell 命令还是一次只执行一个?
如果服务器可以同时处理多个 shell 命令,服务器是否能够同时处理 10 首不同的歌曲,还是一次只能处理一首?
的输出
# ls
Run Code Online (Sandbox Code Playgroud)
和
# echo $(ls)
Run Code Online (Sandbox Code Playgroud)
是相同的。$ 符号和括号究竟是什么意思?
另外,在技术层面上是什么导致这两个命令的输出相同?
当我运行该ls -l命令时,我会获得有关当前目录中文件的详细信息,例如权限、所有者、组、文件大小。
有没有办法在运行时获得这些相同的详细信息,而不仅仅是文件的位置locate?
$ set frog pets
$ echo $1_$2
frog_pets
Run Code Online (Sandbox Code Playgroud)
man set没有给我带来任何东西=(也不是which set或whereis set
两者之间的技术差异是什么?我唯一注意到的是
sudo su
Run Code Online (Sandbox Code Playgroud)
要求您输入自己的密码(假设您不是 root)
尽管
su root
Run Code Online (Sandbox Code Playgroud)
要求您输入root 的密码。然而,两者似乎都让您登录到 root 用户帐户。
我正在尝试将 linux 发行版 .iso 放在我的 USB 上,说明建议使用以下命令来制作 fat32 文件系统:
mkdosfs -F 32 /dev/sdc1
Run Code Online (Sandbox Code Playgroud)
是否有理由使用此命令而不是 mkfs?
我在使用当前版本的 ffmpeg 时遇到问题,它以我的客户不支持的格式将 .mp3 转码为 .wavs。
如何安装这个版本?
ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers
built on Jan 4 2012 16:08:51 with gcc 4.6.1
Run Code Online (Sandbox Code Playgroud)
编辑
我试图解决的问题是将 .mp3 转码为 .wav。我们的客户有一个识别服务,可以从 .wav 中确定歌曲。当我传递 ffmpeg 生成的 .wav 时
exec ("ffmpeg -ss $start -t $duration -i $shellArgSongPath -f wav -ar 44100 somefile.wav");
Run Code Online (Sandbox Code Playgroud)
我收到“不支持音频格式”的消息
我的猜测是用于从 .mp3 转码到 .wav 的默认编解码器已更改。有人知道以前的版本是什么吗?
编辑
(Reading database ... 31284 files and directories currently installed.)
Preparing to replace ffmpeg 4:0.7.3-0ubuntu0.11.10.1 (using ffmpeg_0.7.3-0ubuntu0.11.10.1_amd64.deb) ...
Unpacking replacement ffmpeg ...
Replaced by files …Run Code Online (Sandbox Code Playgroud) 我在 ubuntu 12.04 服务器上有一个存储库,该服务器仅为 64 位架构提供 .deb 文件。
当我运行apt-get更新时,我得到以下信息
W: Failed to fetch https://test.com/repo/dists/precise/Release Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)
Run Code Online (Sandbox Code Playgroud)
我正在使用reprepro将.deb文件添加到存储库
reprepro -Vb . includedeb precise package_amd64.deb
Run Code Online (Sandbox Code Playgroud)
在我的发行版文件中,/var/www/site/repo/conf/distributions我只指定了 amd64 位架构。
Origin: apt.site.com
Label: apt repository
Codename: precise
Architectures: amd64 source
Components: main
Description: debian package repo
SignWith: yes
Pull: precise
Run Code Online (Sandbox Code Playgroud)
我通过让我的sources.list文件包含一个条目来规避错误[arch=amd64]
deb [arch=amd64] https://apt.site.com/repo precise main
Run Code Online (Sandbox Code Playgroud)
但是我想避免在我的sources.list文件中指定它。有什么我可以在存储库上配置的东西来告诉尝试从存储库中提取文件的客户,他们应该只期望为 amd64 …
这种情况每隔几个小时就会发生一次。当我使用 screen 命令并尝试通过连续按ctrl+ shift+a两次在窗口之间切换时,我的会话冻结。
当我使用 putty ssh 到云服务器以及家里 LAN 中的服务器时,就发生过这种情况。
有谁知道对此有什么解决办法吗?
可能的重复:
sudo tar cvpzf 由于先前的错误而退出失败
当我运行命令时
tar -cvfz backup.tar.gz somedirectory
Run Code Online (Sandbox Code Playgroud)
我得到以下斯特尔
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)
但是,当我从-cvfz所有内容中省略前面的连字符时,似乎工作得很好。为什么连字符阻止我对我的文件进行 tar'ing 是否有已知的原因?