Linux下FFmepg使用

1.命令行录一段wav,PCM数据

ffmpeg -f alsa -i hw:0,0 xxx.wav//录制
ffplay out.wav//播放

ffmpeg -f alsa -i hw:0,0 -ar 16000 -channels 1 -f s16le 1.pcm
ffplay -ar 16000 -channels 1 -f s16le 1.pcm

-ar freq 设置音频采样率

-ac channels 设置通道 缺省为1

2.将pcm压缩为aac

ffmpeg -f s16le -ar 16000 -ac 1 -i s16_1_16000.pcm output.aac

3.将aac转为pcm

ffmpeg -i out.aac -f s16le -ar 16000 -ac 1 -acodec pcm_s16le 16000_1_s16le.pcm
 

4.将aac通过网络传输

5.拉流网络数据

6.录一段原格式视频

7.录一段H264视频

ffmpeg -video_size 1280x720 -f x11grab -i "" -vcodec libx264 -preset ultrafast -f h264 -r 30 test.h264

使用RTP发送H264,接收

ffmpeg -re -i d:\videos80P.264 -vcodec copy -f rtp rtp://127.0.0.1:1234

ffplay -protocol_whitelist "file,udp,rtp" -i rtp://127.0.0.1:1234//拉流并播放

注意:ffplay的RTP协议默认是不启用的,需要添加-protocol_whitelist参数把RTP协议加入白名单。但是,执行了上面的命令可能会出错,因为ffplay使用RTP协议接收需要一个SDP文件,该文件定义了输入流的格式信息以及接收端的IP和端口号。

我们可以让FFmpeg在执行推流输出时导出一个SDP,命令行如下:

ffmpeg -re -i d:\videos80P.264 -vcodec copy -f rtp rtp://127.0.0.1:1234>test_rtp_h264.sdp

(SDP文件的信息说明:传输协议:RTP/AVP, 接收端IP:127.0.0.1,  接收端口号:1234 ,  PayloadType:96 ,视频格式:H264 )

以上面SDP文件为输入让ffplay打开流,命令行是:

ffplay -protocol_whitelist "file,udp,rtp" -i test_rtp_h264.sdp

8.用ffmpeg库录制一段音频数据

语音信号处理-基本概念(二):音频通道数、采样频率、采样位数、采样个数(样本数)、一帧音频的大小、每秒播放的音频字节大小、一帧的播放时长、音频重采样_语音录制采样率和采样率-CSDN博客

在Linux环境下使用ffmpeg将PCM音频数据编码成aac数据_linux ffmpeg pcm转acc-CSDN博客

9.重采样音频

两种重采样方法:

【FFmpeg实战】音频重采样_ffmpeg 音频采样率-CSDN博客

10.编码

11.传输

相关结构体:

AVFormatContext:FFMPEG结构体 - 简书 (jianshu.com)  主要和流的一些信息相关,混合流和文件流

AVDictionary:设置流的参数信息,主要是采集时候

问题:视频常见问题(四):视频花屏和绿屏 - 知乎 (zhihu.com)

视频编码出来一半正常,一半绿屏

我的问题GPT给我解决了,产生问题到解决问题用来不到三分钟,GPT真香

相关推荐

  1. linux 环境安装ffmpeg

    2023-12-17 08:14:06       46 阅读
  2. linux 入门(七)-ffmpeg使用

    2023-12-17 08:14:06       19 阅读
  3. Linux使用Pycharm

    2023-12-17 08:14:06       18 阅读
  4. Linux 通过ffmpeg 读取yuv编码264 码流

    2023-12-17 08:14:06       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 08:14:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 08:14:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 08:14:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 08:14:06       18 阅读

热门阅读

  1. ubuntu22.04 怎么查看系统日志

    2023-12-17 08:14:06       35 阅读
  2. 敏捷开发-任务拆解、工作量评估和任务指派

    2023-12-17 08:14:06       35 阅读
  3. 什么是CI/CD?如何在PHP项目中实施CI/CD?

    2023-12-17 08:14:06       38 阅读
  4. GC root 有哪些

    2023-12-17 08:14:06       29 阅读
  5. Git批量删除本地分支

    2023-12-17 08:14:06       36 阅读
  6. LeetCode:967连续查相同的数字(DFS)

    2023-12-17 08:14:06       38 阅读
  7. 机器学习和机器学习解决方案架构

    2023-12-17 08:14:06       33 阅读
  8. [英语学习][15][Word Power Made Easy]的精读与翻译优化

    2023-12-17 08:14:06       34 阅读
  9. 数据库设计范式(数据库设计规则)

    2023-12-17 08:14:06       43 阅读