0


Linux快速安装FFmpeg、ffprobe、ffplay以及在Linux上的使用

文章目录

一、工具简介

这些工具都是与多媒体处理和流媒体相关的开源工具,它们都属于 FFmpeg 多媒体框架。

  • FFmpeg

是一个用于处理多媒体内容(音频、视频、图像等)的命令行工具。它可以执行各种各样的操作,包括转码、剪辑、合并、分离、编码、解码等。FFmpeg 是一个功能强大且广泛使用的工具,可以在多种平台上运行。

  • FFplay

是 FFmpeg 提供的一个简单的媒体播放器,它可以播放各种格式的音频和视频文件。FFplay 是基于 FFmpeg 库构建的,它提供了一个轻量级的命令行界面,可用于快速播放多媒体文件,适用于测试和简单的播放任务。

  • FFprobe

是一个用于分析多媒体文件的工具。它提供了详细的信息,包括多媒体文件的编解码器、格式、流信息等。FFprobe 可以帮助用户了解多媒体文件的特性,例如分辨率、帧率、比特率等,这对于诊断和处理多媒体文件非常有用。

  • FFserver

是一个流媒体服务器,可以用于实时转码和分发音频/视频流。它可以接受来自各种来源(如摄像头、音频接口等)的多媒体流,并将其转码为不同的格式和分辨率,然后通过网络分发给客户端。FFserver 可以用于构建自己的流媒体平台,例如音视频直播服务或视频点播服务。

二、CentOS7上安装FFmpeg

在CentOS7 上安装FFmpeg 安装FFmpeg有两种方法,一种是使用源代码构建,一种是使用Nux Dextop存储库使用yum安装,源代码构建相对会麻烦一些麻烦

2.1 方法一:yum安装

  • 1、启用EPEL存储库(如果已启动可以跳过此步骤)
  1. yum install epel-release
  • 2、安装rpm软件包来启用Nux存储库
  1. rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
  2. rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
  • 3、安装FFmpeg
  1. yum install ffmpeg ffmpeg-devel
  • 4、测试是否安装成功
  1. ffmpeg -version
  2. ffprobe -version

2.2 方法二:源码安装

选择最新版本的xz 压缩包

  • 2、源码解压 上一步我们下载ffmpeg到我们的windows硬盘了

然后我们上传到我们的linux服务器,我选择了SFTP的方式进行上传

在usr/local下创建ffmpeg文件夹,并进入ffmpeg文件夹下

  1. cd /usr/local/
  2. mkdir ffmpeg
  3. cd ffmpeg
  • 3、解压安装包
  1. tar -xjvf ffmpeg-4.4.1.tar.xz
  • 4、编译准备
  1. yum install gcc # 安装gcc编译器
  2. yum install yasm # 安装yasm编译器
  • 5、安装
  1. cd ffmpeg-4.4.1
  2. ./configure --enable-shared --prefix=/usr/local/ffmpeg/ffmpeg-4.4.1
  3. make
  4. make install
  • 6、将lib目录加载到系统库链接

添加ffmpeg文件,并修改内容

  1. vim /etc/ld.so.conf.d/ffmpeg.conf

写入内容:

  1. /usr/local/ffmpeg/ffmpeg-4.4.1/lib

执行:

  1. ldconfig
  • 7、检测是否安装成功 在ffmpeg-4.4.1文件夹里执行:
  1. ./ffmpeg -version
  • 8、添加到全局变量

修改配置文件:

  1. vim /etc/profile

在最后一行添加:

  1. export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/local/ffmpeg/ffmpeg-4.4.1/lib/pkgconfig
  2. export FFMPEG_HOME=/usr/local/ffmpeg/ffmpeg-4.4.1
  3. export PATH=$PATH:$FFMPEG_HOME

使配置生效:

  1. source /etc/profile

三、ffprobe 在linux中的用法

ffprobe 是 FFmpeg 套件中的一个工具,用于分析多媒体数据。它可以用来检查多媒体文件(如音频、视频和字幕文件)的格式、编解码器信息、元数据等。在 Linux 中,ffprobe 的基本用法是通过命令行界面进行的。

3.1 显示多媒体文件的基本信息

这个命令会输出一个 JSON 格式的字符串,包含输入文件(input.mp4)的格式和流信息。

  1. ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

输出信息:

  1. {
  2. "streams": [
  3. {
  4. "index": 0,
  5. "codec_name": "h264",
  6. "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
  7. "profile": "High",
  8. "codec_type": "video",
  9. "codec_time_base": "1/50000",
  10. "codec_tag_string": "avc1",
  11. "codec_tag": "0x31637661",
  12. "width": 1080,
  13. "height": 1920,
  14. "coded_width": 1088,
  15. "coded_height": 1920,
  16. "has_b_frames": 2,
  17. "sample_aspect_ratio": "1:1",
  18. "display_aspect_ratio": "9:16",
  19. "pix_fmt": "yuv420p",
  20. "level": 40,
  21. "color_range": "tv",
  22. "color_space": "bt709",
  23. "chroma_location": "left",
  24. "refs": 4,
  25. "is_avc": "1",
  26. "nal_length_size": "4",
  27. "r_frame_rate": "25/1",
  28. "avg_frame_rate": "25/1",
  29. "time_base": "1/25000",
  30. "start_pts": 0,
  31. "start_time": "0.000000",
  32. "duration_ts": 9471000,
  33. "duration": "378.840000",
  34. "bit_rate": "771385",
  35. "bits_per_raw_sample": "8",
  36. "nb_frames": "9471",
  37. "disposition": {
  38. "default": 1,
  39. "dub": 0,
  40. "original": 0,
  41. "comment": 0,
  42. "lyrics": 0,
  43. "karaoke": 0,
  44. "forced": 0,
  45. "hearing_impaired": 0,
  46. "visual_impaired": 0,
  47. "clean_effects": 0,
  48. "attached_pic": 0
  49. },
  50. "tags": {
  51. "creation_time": "2024-03-04 09:08:06",
  52. "language": "und"
  53. }
  54. },
  55. {
  56. "index": 1,
  57. "codec_name": "aac",
  58. "codec_long_name": "AAC (Advanced Audio Coding)",
  59. "profile": "LC",
  60. "codec_type": "audio",
  61. "codec_time_base": "1/48000",
  62. "codec_tag_string": "mp4a",
  63. "codec_tag": "0x6134706d",
  64. "sample_fmt": "fltp",
  65. "sample_rate": "48000",
  66. "channels": 2,
  67. "channel_layout": "stereo",
  68. "bits_per_sample": 0,
  69. "r_frame_rate": "0/0",
  70. "avg_frame_rate": "0/0",
  71. "time_base": "1/48000",
  72. "start_pts": 0,
  73. "start_time": "0.000000",
  74. "duration_ts": 18188288,
  75. "duration": "378.922667",
  76. "bit_rate": "128102",
  77. "max_bit_rate": "153976",
  78. "nb_frames": "17762",
  79. "disposition": {
  80. "default": 1,
  81. "dub": 0,
  82. "original": 0,
  83. "comment": 0,
  84. "lyrics": 0,
  85. "karaoke": 0,
  86. "forced": 0,
  87. "hearing_impaired": 0,
  88. "visual_impaired": 0,
  89. "clean_effects": 0,
  90. "attached_pic": 0
  91. },
  92. "tags": {
  93. "creation_time": "2024-03-04 09:07:59",
  94. "language": "und"
  95. }
  96. }
  97. ],
  98. "format": {
  99. "filename": "input.mp4",
  100. "nb_streams": 2,
  101. "nb_programs": 0,
  102. "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
  103. "format_long_name": "QuickTime / MOV",
  104. "start_time": "0.000000",
  105. "duration": "378.921667",
  106. "size": "42792276",
  107. "bit_rate": "903453",
  108. "probe_score": 100,
  109. "tags": {
  110. "major_brand": "isom",
  111. "minor_version": "1",
  112. "compatible_brands": "isom",
  113. "creation_time": "2024-03-04 09:09:41"
  114. }
  115. }
  116. }

3.2 显示特定流的信息

如果你只对音频流或视频流感兴趣,你可以使用 -select_streams 选项来指定。例如,显示视频流信息:

  1. # ffprobe -v quiet -print_format json -show_streams -select_streams v input.mp4

或者显示音频流信息:

  1. ffprobe -v quiet -print_format json -show_streams -select_streams a input.mp3

以下是返回信息:

  1. {
  2. "streams": [
  3. {
  4. "index": 0,
  5. "codec_name": "h264",
  6. "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
  7. "profile": "High",
  8. "codec_type": "video",
  9. "codec_time_base": "1/50000",
  10. "codec_tag_string": "avc1",
  11. "codec_tag": "0x31637661",
  12. "width": 1080,
  13. "height": 1920,
  14. "coded_width": 1088,
  15. "coded_height": 1920,
  16. "has_b_frames": 2,
  17. "sample_aspect_ratio": "1:1",
  18. "display_aspect_ratio": "9:16",
  19. "pix_fmt": "yuv420p",
  20. "level": 40,
  21. "color_range": "tv",
  22. "color_space": "bt709",
  23. "chroma_location": "left",
  24. "refs": 4,
  25. "is_avc": "1",
  26. "nal_length_size": "4",
  27. "r_frame_rate": "25/1",
  28. "avg_frame_rate": "25/1",
  29. "time_base": "1/25000",
  30. "start_pts": 0,
  31. "start_time": "0.000000",
  32. "duration_ts": 9471000,
  33. "duration": "378.840000",
  34. "bit_rate": "771385",
  35. "bits_per_raw_sample": "8",
  36. "nb_frames": "9471",
  37. "disposition": {
  38. "default": 1,
  39. "dub": 0,
  40. "original": 0,
  41. "comment": 0,
  42. "lyrics": 0,
  43. "karaoke": 0,
  44. "forced": 0,
  45. "hearing_impaired": 0,
  46. "visual_impaired": 0,
  47. "clean_effects": 0,
  48. "attached_pic": 0
  49. },
  50. "tags": {
  51. "creation_time": "2024-03-04 09:08:06",
  52. "language": "und"
  53. }
  54. }
  55. ]
  56. }

3.3 获取音视频的时长

如果你只想获取视频的时长,可以使用 -show_entries 选项来指定 format=duration,并且设置输出格式为纯文本:

以下是使用ffprobe获取视频时长的基本命令:

  1. ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4

以下是使用ffprobe获取音频时长的基本命令:

  1. ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp3

输出:

  1. 378.921667

在这个命令中:

  • -v error:设置日志级别为error,以减少输出中的非必要信息。
  • -show_entries format=duration:指定要显示的条目为format下的duration,即视频的时长。
  • -of default=noprint_wrappers=1:nokey=1:设置输出格式为默认格式,并去除包装器和键名,只输出时长值。
  • input.mp4:替换为你的视频文件名。
  • 执行这个命令后,ffprobe会输出视频的时长,以秒为单位。

注意:使用以上命令时,确保你已经安装了FFmpeg,并且ffprobe命令在你的系统路径中可用。如果你没有安装FFmpeg,你可以通过包管理器(如apt、yum或pacman)来安装它。

标签: linux ffmpeg

本文转载自: https://blog.csdn.net/cljdsc/article/details/136986456
版权归原作者 杰哥的技术杂货铺 所有, 如有侵权,请联系我们删除。

“Linux快速安装FFmpeg、ffprobe、ffplay以及在Linux上的使用”的评论:

还没有评论