音视频数据流基础 · 第 5 篇
FFMpeg 命令记录
FFprobe
#1.查看视频流每一帧的pts dts pos
ffprobe -v error -select_streams v:0 \
-show_entries packet=pts,dts,pos,size,flags \
-of csv=p=0 input.mp4
#2.查看支持的sections
ffprobe -sections
#3.探测抽样首个数据包的所有底层暴露开放字段
ffprobe -v error -show_packets -of json input.mp4 | jq '.packets[0] | keys'
# 4. 查看 AAC 音频或 WAV 的详细容器格式信息:
ffprobe -show_streams input.aacFFMpeg
# 1.将 MP4 容器直接秒级无损洗稿为流式基因的 FLV 容器
ffmpeg -i input.mp4 -c:v copy -c:a copy output.flv
# 2.提取音轨并强制其接受 HEVC(H.265) 规范的残忍重编码打磨,
ffmpeg -i input.mp4 -map 0 -c:v libx265 /tmp/output.ts
# 3.提取 AAC(保持原始编码,不重新压缩):
ffmpeg -i input.mp4 -vn -c:a copy output.aac
# 4. 从视频中提取音频并转为 WAV(解压缩为 PCM):
ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav
# 5. 提取为无任何头部的裸 PCM 数据(S16LE):
ffmpeg -i input.mp4 -vn -c:a pcm_s16le -f s16le output.pcm
# 6. 将 WAV 压缩为带 ADTS 头的 AAC 裸流:
ffmpeg -i input.wav -c:a aac -b:a 128k -f adts output.aac
# 7. 从容器提取h264 流
ffmpeg -i input.mp4 -c:v copy -an -sn output.h264
# 8. 将视频导出为裸的 YUV420P(I420)数据:
ffmpeg -i input.mp4 -pix_fmt yuv420p -f rawvideo output.yuv
# 9. 截取第一帧导出为 YUV:
ffmpeg -i input.mp4 -vframes 1 -pix_fmt yuv420p frame.yuv
# 10. 查看视频原本的底层像素格式:
ffprobe -v error -select_streams v:0 -show_entries stream=pix_fmt,width,height -of default=nw=1 input.mp4
# 11. 将 yuv420p 裸数据无损转换为 nv12 格式:
ffmpeg -pix_fmt yuv420p -s 1280x720 -i yuv420p.yuv -pix_fmt nv12 nv12_ffmpeg.yuvFFplay
#1. 强行播放YUV数据
ffplay -f rawvideo -pixel_format yuv420p -video_size 1920x1080 output.yuv音视频数据流基础
共 5 篇