利用ffmpeg分析视频流

这篇具有很好参考价值的文章主要介绍了利用ffmpeg分析视频流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ffprobe -show_packets -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示 RTSP 流中的数据包信息,例如时间戳、大小、持续时间等。

ffprobe -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示输入 RTSP 流的基本信息,例如时长、编解码器、分辨率等。

ffprobe -show_format -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示输入 RTSP 流的格式信息,例如容器格式、音视频流信息等。

ffprobe -show_frames -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示输入 RTSP 流的帧信息,例如帧类型、时间戳、关键帧标志等。

ffprobe -show_streams -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示输入 RTSP 流的流信息,例如音视频流的基本信息、编解码器参数等。

ffprobe -show_pixel_formats -i "rtsp://admin:test1234@192.168.42.234:554/h264/ch33/main/av_stream":该命令用于显示输入 RTSP 流支持的像素格式。

ffprobe -show_data -i "rtsp://192.168.61.46:8554/live?channel=0&type=0":该命令用于显示输入 RTSP 流的数据信息,例如每个数据包的字节内容。

显示媒体文件的帧率、码率等信息:
ffprobe -i input.mp4 -show_entries stream=codec_type,codec_name,bit_rate,r_frame_rate,sample_rate,duration,size

显示媒体文件中所有关键帧的位置:
ffprobe -i input.mp4 -select_streams v:0 -skip_frame nokey -show_frames -of csv

显示媒体文件编码器的参数设置:
ffprobe -i input.mp4 -show_entries format_tags=encoder -v 0

使用 XML 格式输出媒体文件信息:
ffprobe -i input.mp4 -print_format xml -show_format -show_streams > output.xml
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4 > output.json

只看视频流:
ffprobe -show_frames -select_streams v -of xml input.mp4

查看flv视频格式的信息
ffprobe -v trace -i key.flv
 

仅展示宽高
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat -select_streams v:0 -show_entries stream=width,height simpsons_1080p2398_clip.mp4
查看pts
ffprobe -v error -hide_banner -of default=noprint_wrappers=1 -select_streams v:0 -show_entries packet=pts_time simpsons_1080p2398_clip.mp4
查看时长duration
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format xml -select_streams v:0 -show_entries stream=duration simpsons_1080p2398_clip.mp4
帧类型信息:
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat  -select_streams v:0 -show_entries frame=pict_type simpsons_1080p2398_clip.mp4
码率
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat  -select_streams v:0 -show_entries stream=bit_rate simpsons_1080p2398_clip.mp4
使用ffprobe输出编解码器信息
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat  -select_streams v:0 -show_entries stream=codec_name,codec_long_name,profile,codec_tag_string simpsons_1080p2398_clip.mp4
使用ffprobe显示像素格式
ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat  -select_streams v:0 -show_entries stream=pix_fmt simpsons_1080p2398_clip.mp4

放音频文件时,不确定文件的声音是否正常,噪声数据等分析,可以直接使用ffplay播放音频文
件,播放的时候将会把解码后的音频数据以音频波形显示出来:
#ffplay -showmode 1 output.mp3

# 通过图中的箭头可以看到p帧运动估计的信息
# ffplay.exe -flags2 +export_mvs -ss 40 "D:/hik_h264.mp4" -vf codecview=mv=pf+bf+bb

现在要计算 rec.yuv 和 dec.yuv 的 psnr,则在视频所在目录下打开 cmd 输入
ffmpeg  -pix_fmt  yuv420p  -s 1920x1080  -i rec.yuv  -pix_fmt yuv420p  -s 1920x1080 -i decs.yuv -lavfi psnr="stats_file=psnr.log"  -f null  -

计算 PSNR
use '-frame' to specify the number of frames to be cauculated, i.e.
ffmpeg  -pix_fmt  yuv420p  -s 1920x1080  -i Kimono_1920x1080_24.yuv  -pix_fmt yuv420p  -s 1920x1080 -i Kimono22.yuv -frames 12 -lavfi psnr="stats_file=psnr.log"  -f null  -

计算 SSIM
ffmpeg -s 352x288 -i rec.yuv -s 352x288 -i dec.yuv -lavfi ssim="stats_file=ssim.log" -f null -文章来源地址https://www.toymoban.com/news/detail-640129.html

到了这里,关于利用ffmpeg分析视频流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ffmpeg+nginx-rtmp转发视频流

    本篇博客最早发布于实验室公共博客,但已无人维护,现迁移至个人博客 画了好几天图,实在有些乏力,找点有意思的事情做做 觉得 视频流传输 挺有意思,B站找了些视频,但感觉有些大同小异,讲得不是很清楚 FFmpeg/RTMP/webRTC丨90分钟搞定直播逻辑-推流-流媒体服务器-拉流

    2024年02月11日
    浏览(37)
  • 视频推流测试——使用ffmpeg进行推流生成rtsp视频流

    在我们完成开发工作之后,需要通过推流的形式来验证能否正确接收视频流,并送入视频检测程序。笔者在这里使用的是业内最为常用的ffmpeg。具体方法如下。 访问ffmpeg的官网,地址为https://ffmpeg.org/download.html,按照如下途中来选择下载。 下载完成后,会得到一个zip格式的压

    2024年02月09日
    浏览(52)
  • cv2.VideoCapture 及 ffmpeg 打开视频流

    安装ffmpeg: windows电脑FFmpeg安装教程手把手详解   安装ffmpeg 运行ffmpeg:

    2024年02月12日
    浏览(44)
  • Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流

    Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览: Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览_nginx rtmp 海康摄像头_霸道流氓气质的博客-CSDN博客 上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。 如果在其它业务场景下需要本地的视频文件模拟

    2024年02月12日
    浏览(44)
  • FFmpeg+SDL实时解码和渲染H264视频流

    之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来。这次使用的语言是C++,框架有FFmpeg和SDL2。 解码部分使用FFmpeg,首先,需要初始化H264解码器: 然后,使用创建TCP连接到我们的Android端,读取数据包: 再把每

    2024年02月13日
    浏览(47)
  • ffmpeg + nginx 实现rtsp视频流转m3u8视频流,转码推流(linux)

    FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率

    2024年02月09日
    浏览(70)
  • 在AWS Lambda中使用FFmpeg处理m3u8视频流

    在直播里领域,我们经常需要对视频流进行处理。FFmpeg则是该领域中处理的利器。这篇文章,我们将以视频流截图为例,讲解如何在AWS Lambda中对m3u8视频流进行截图。因为Lambda是无服务架构,其本地存储是不可靠的,于是最后我们需要将截图文件上传S3桶。 这块的方案可以见

    2024年02月03日
    浏览(60)
  • FFmpeg源码分析:avcodec_send_packet()与avcodec_receive_frame()音视频解码

    FFmpeg在libavcodec模块,旧版本提供avcodec_decode_video2()作为视频解码函数,avcodec_decode_audio4()作为音频解码函数。在FFmpeg 3.1版本新增avcodec_send_packet()与avcodec_receive_frame()作为音视频解码函数。后来,在3.4版本把avcodec_decode_video2()和avcodec_decode_audio4()标记为过时API。版本变更描述如下

    2024年02月03日
    浏览(54)
  • FFmpeg源码分析:avcodec_send_frame()和avcodec_receive_packet()音视频编码

    FFmpeg在libavcodec模块,旧版本提供avcodec_encode_video2()作为视频编码函数,avcodec_encode_audio2()作为音频编码函数。在FFmpeg 3.1版本新增avcodec_send_frame()与avcodec_receive_packet()作为音视频编码函数。后来,在3.4版本把avcodec_encode_video2()和avcodec_encode_audio2()标记为过时API。 在上一篇文章介绍

    2023年04月11日
    浏览(37)
  • 音视频 FFmpeg音视频处理流程

    推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包