音频相关 ALSA ffmpeg ffplay 命令用法 g7xx

采样率: samples

441100 每秒 DAC/ADC 采样的频率,声卡一般还支持 48k 8k 等模式。

通道:channels

2声道 左右声道 也有单声道的声音,5.1 声道

位数: 

16bit 采样 DAC/ADC 深度 16bit 就是 65536 种声音层次

pcm 原始的 bit 流,如果是2声道 16bit,就是 左 16bit , 右 16bit 共 4个 Byte。

一个典型的 alsa 配置就按上面。

采样频率 支持音频带宽 输出码率 最低算法延迟

G711 8KHz 300 Hz ~ 3,400 Hz 64 Kbps <1ms

G722 16kHz 50 Hz ~ 7 kHz 64 Kbps 3ms

G722.1 16kHz 50 Hz ~7 kHz 24、32 Kbps 40ms

G722.1 C 32kHz 50 Hz~14 kHz 24、32、48Kbps 40ms

AAC-LD 48kHz 20 Hz-20kHz 48~64 Kbps 20ms

G729  8KHz

G 711 有2种编码格式也称为 PCMA A-Law  PCMU μ -Law 。

 

推荐一个好用的 音频编辑及混音软件

https://www.audacityteam.org/

可以很方便的,查看 左右声道数据,可以播放原始 PCM 数据,也可以播放 PCMA PCMU 。 

ffmpeg ffplay 命令用法

windows 版下载地址 https://ffmpeg.zeranoe.com/builds/

ffplay -decoders 显示所有解码器
ffplay -formats 显示所有格式
ffplay -layouts 显示所有layout
ffplay xxx.m4a
ffplay -f s16le -ar 8000 -ac 2 rec.pcm
ffplay 播放 g711 alaw 格式的PCM
ffplay -f s16le -ar 8000 -acodec pcm_alaw -ac 2 xxx.pcm
播放 g722
ffplay -f s16le -ar 16000 -acodec g722 -ac 2 xxx.g722
mp3 转 wav
ffmpeg -i xxx.mp3 -f wav xxx.wav
播放 wav
ffplay -f s16le -ar 44100 -ac 2 SunshineGirl.wav
mp3 转 g722
ffmpeg -i xxx.mp3 -ar 16000 -acodec g722 xxx.g722
g722 转 mp3
ffmpeg -i xxx.g722 xxx.mp3
mp3 调整采样率 声道数
ffmpeg -i 27.mp3 -ac 1 -ar 44100 new-27.mp3
mp3 转 aac 需要用到 fdk 库,需要安装编译好
ffmpeg -i 11.mp3 -c:a libfdk_aac 11.m4a
生成缩略图
ffmpeg -i xxx.avi -y -f mjpeg -ss 3 -t 1 -s 320x240 d:/1.jpg
查看视频信息
ffmpeg -i xxx.mp4
提取视频中的音频aac
ffmpeg -i 1.mp4 -vn -codec copy out.m4a
视频转码FHD 1080p 转 720p
ffmpeg -i xxx.mp4 -b:v 500k -s 1280x720 720p-md.mp4

提取音频:

ffmpeg -i 01.mkv -vn -codec copy out.m4a
ffmpeg -i out.m4a -f wav out.wav
ffmpeg -i out.wav out.mp3

hls流转 mp4

ffmpeg -i http://xxxx.com/2019.m3u8 -vcodec copy -acodec copy -absf aac_adtstoasc  output.mp4

更新 

ubuntu 16.0.4
ffplay 播放出错
Failed to initialize a hardware accelerated renderer: Couldn't find matching render driver
Failed to create window or renderer: Couldn't find matching render driver

因为 SDL 使用 OpenGL 进行渲染,所以需要安装库

sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglew-dev
sudo apt-get install libglm-dev

安装上这几个库以后,重新编译 SDL2 就可以了。

 

 2025-10-18 更新,一个批量转换视频的 bash 

#!/bin/bash
# 批量转码脚本:将指定目录下的视频转为省空间版本

# ====== 配置部分 ======
INPUT_DIR="F:\\火影忍者 全集4K 720集全"     # 输入目录
OUTPUT_DIR="F:\\火影忍者 全集480p 720集全"    # 输出目录
mkdir -p "$OUTPUT_DIR"          # 如果不存在则创建

# 转码参数
SCALE="854:480"                 # 目标分辨率
FPS=30                          # 目标帧率
CRF=28                          # H.264 压缩质量 (23 高质量 / 30 体积小)
PRESET="slow"                   # 编码预设 (slower=更省空间)
AUDIO_BITRATE="64k"             # 音频码率

# ====== 转码循环 ======
# 处理常见视频格式
for f in "$INPUT_DIR"/*.{mp4,mkv,avi,flv,mov}; do
    # 跳过不存在的匹配
    [ -e "$f" ] || continue

    # 获取不带扩展名的文件名
    filename=$(basename "$f")
    name="${filename%.*}"

    echo "正在转码:$filename ..."

    ffmpeg -i "$f" \
        -vf "scale=$SCALE" \
        -r $FPS \
        -c:v libx264 -crf $CRF -preset $PRESET \
        -c:a aac -b:a $AUDIO_BITRATE \
        "$OUTPUT_DIR/${name}.mp4"

    echo "完成:$filename"
    rm -rf "$f" #转换后删除源文件
    echo
done

echo "全部转码完成,输出目录:$OUTPUT_DIR"

 

posted @ 2018-10-27 21:31  宁次  阅读(4835)  评论(0)    收藏  举报