下载网络视频并转为MP3文件

165 阅读2分钟

一、下载 m3u8 文件的方法:

1. 使用 ffmpeg(最推荐)

# 基本下载
ffmpeg -i "https://example.com/playlist.m3u8" -c copy output.mp4

# 指定质量和格式
ffmpeg -i "https://example.com/playlist.m3u8" -c:v libx264 -c:a aac output.mp4

# 添加用户代理(应对反爬)
ffmpeg -user_agent "Mozilla/5.0..." -i "https://example.com/playlist.m3u8" -c copy output.mp4

# 设置超时和重试
ffmpeg -timeout 300000 -i "https://example.com/playlist.m3u8" -c copy output.mp4

2. 使用 yt-dlp(功能强大)

# 基本下载
yt-dlp "https://example.com/playlist.m3u8" -o output.mp4

二、下载普通文件的方法:

1. 使用 curl(最常用)

# 基本下载
curl -O https://example.com/file.zip

# 指定保存文件名
curl -o custom_name.zip https://example.com/file.zip

# 跟随重定向
curl -L -O https://example.com/file.zip

# 显示进度条
curl -# -O https://example.com/file.zip

2. 使用 wget

# 基本下载
wget https://example.com/file.zip

# 指定保存目录
wget -P /path/to/directory https://example.com/file.zip

# 断点续传
wget -c https://example.com/file.zip

# 后台下载
wget -b https://example.com/file.zip

3. 使用 aria2(支持多线程)

# 基本下载
aria2c https://example.com/file.zip

# 多线程下载(推荐)
aria2c -s 16 -x 16 https://example.com/file.zip

# 指定保存文件名
aria2c -o custom_name.zip https://example.com/file.zip

4. 使用 scp(SSH 文件传输)

# 从远程服务器下载
scp username@remotehost:/path/to/file.zip ./local_directory/

5. 使用 rsync

# 同步下载文件
rsync -avz username@remotehost:/path/to/file.zip ./local_directory/

6. 使用 ftp(FTP 协议)

ftp -in <<EOF
open ftp.example.com
user username password
get file.zip
quit
EOF

常用参数说明:

  • curl -O:使用服务器上的文件名保存
  • curl -o:指定自定义文件名
  • wget -c:断点续传
  • aria2c -s:设置连接数
  • 所有命令都支持 -h 查看帮助

推荐:

日常使用推荐 curlwget,如果需要高速下载大文件推荐 aria2c

三、MP4 转 MP3 的方法:

1. 使用 ffmpeg(最推荐)

# 基本转换
ffmpeg -i input.mp4 output.mp3

# 指定音频质量(比特率)
ffmpeg -i input.mp4 -b:a 320k output.mp3

# 只提取音频流,更快
ffmpeg -i input.mp4 -vn -c:a mp3 output.mp3

# 批量转换当前目录所有MP4文件
for file in *.mp4; do ffmpeg -i "$file" -vn -c:a mp3 "${file%.mp4}.mp3"; done

2. 使用 avconv(ffmpeg 的替代品)

avconv -i input.mp4 -vn -c:a mp3 output.mp3

3. 使用 vlc(如果已安装)

vlc -I dummy input.mp4 --sout="#transcode{acodec=mp3}:std{access=file,mux=raw,dst=output.mp3}" vlc://quit

常用参数说明:

  • -i:输入文件
  • -vn:禁用视频流(只处理音频)
  • -c:a mp3:音频编码器使用 MP3
  • -b:a 320k:设置音频比特率为 320kbps(高质量)
  • -q:a 0:最高质量(VBR)
  • -ar 44100:设置采样率为 44.1kHz

高质量转换推荐:

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 0 output.mp3

批量转换脚本:

#!/bin/bash
for mp4file in *.mp4; do
    if [ -f "$mp4file" ]; then
        mp3file="${mp4file%.mp4}.mp3"
        echo "正在转换: $mp4file$mp3file"
        ffmpeg -i "$mp4file" -vn -c:a libmp3lame -q:a 2 "$mp3file"
    fi
done

安装 ffmpeg:

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

CentOS/RHEL:

sudo yum install ffmpeg

macOS:

brew install ffmpeg