Redian新闻
>
ffprobe综合教程(内含7个示例)

ffprobe综合教程(内含7个示例)

科技

 点击上方“LiveVideoStack”关注我们


▲扫描图中二维码或点击阅读原文
了解音视频技术大会更多信息


翻译、编辑:Alex
技术审校:刘歧
本文来自OTTVerse,作者为Krishna Rao Vijayanagar。

ffprobe

Easy-Tech


#038#



在我的视频处理工具箱里,ffprobe有着非常重要的地位!在FFmpeg库中,ffprobe堪称视频信息提取或视频检测的“瑞士军刀”。下面是FFmpeg文档对ffprobe的简单描述:


ffprobe从多媒体流中收集信息并将它们以人类和机器可读的形式输出。


你可以使用ffprobe输出详细且便捷的视频信息(如pts、dts、帧率和像素格式、图像类型等等)。你也可以使用命令行提取高级信息(编解码器类型、持续时间和视频尺寸)或者数据包的相关信息。

 

这些优势使ffprobe成为每个视频工程师工具箱里不可或缺的工具。在本文中,我们将学习如何使用ffprobe分析视频和提取视频信息。

 


在哪里获取ffprobe?


你可以在OTTVerse的FFmpeg bulid页面下载ffprobe:

https://ottverse.com/ffmpeg-builds/。下载适用于Windows 64位的FFmpeg静态程序的压缩包,解压缩文件后,你会发现三个可执行文件:ffmpeg、ffprobe和ffplay。你只要打开命令提示符,就可以使用ffprobe。


如果你使用的是Mac,可以通过Homebrew安装ffprobe(和FFmpeg一起安装)。


brew install ffmpeg


而在Linux上,你可以使用操作系统的包管理工具(审校者注:Redhat下面是dnf或者yum,Ubuntu下面是apt)安装FFmpeg,同时也会安装ffprobe。比如,在Ubuntu上:

 

sudo apt-get install ffmpeg

 

更多安装指南,你可以参考这篇文章:https://ottverse.com/install-ffmpeg-windows-macos-ubuntu/



如何使用ffprobe?


ffprobe的使用非常简单。你只需在命令行上调用它,并指定你要分析的视频。如下所示:


$ ffprobe simpsons_1080p2398_clip.mp4
Output-------
ffprobe version N-100618-gdb738f51de-gca21cb1e36+2 Copyright (c) 2007-2021 the FFmpeg developers built with gcc 10.2.0 (Rev6, Built by MSYS2 project) configuration: --cc='ccache gcc' --cxx='ccache g++' --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-libaom --disable-debug --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3 --enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf --enable-libsvtav1 --enable-librtmp --enable-mbedtls --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads libavutil 56. 63.100 / 56. 63.100 libavcodec 58.116.100 / 58.116.100 libavformat 58. 65.101 / 58. 65.101 libavdevice 58. 11.103 / 58. 11.103 libavfilter 7. 95.100 / 7. 95.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'simpsons_1080p2398_clip.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : The Simpsons Movie - Trailer artist : 20th Century Fox date : 2007 encoder : Lavf58.56.100 genre : Trailer Duration: 00:00:19.99, start: 0.007007, bitrate: 4898 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800, 5277 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default) Metadata: handler_name : GPAC ISO Video Handler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 126 kb/s (default) Metadata: handler_name : GPAC ISO Audio Handler vendor_id : [0][0][0][0]

从输出中可以看到,ffprobe提供了很多视频高级信息。它告诉你视频包含多少个流、视频流和音频流数量、编解码器细节、帧率和视频持续时间等。

  

记住,这些信息非常有用,在接下来的部分,我们将学习如何使用ffprobe深入并获取帧相关信息。


如何隐藏ffprobe Banner?


如果你只想要ffprobe中的特定信息,那么输出所有FFmpeg相关信息(版本信息、build信息等)就很讨厌。幸运的是,有一个可以阻止ffprobe输出所有信息的选项——banner。你可以执行下面的操作:


ffprobe -hide_banner <options_follow_...>

 

这就是启用hide_banner所输出的结果。因为没有FFmpeg及其build选项信息,所以它更容易阅读。

$ ffprobe crowdruncrf35.mp4 -hide_bannerInput #0, mov,mp4,m4a,3gp,3g2,mj2, from 'crowdruncrf35.mp4':  Metadata:    major_brand     : isom    minor_version   : 512    compatible_brands: isomiso2avc1mp41    encoder         : Lavf58.59.100  Duration: 00:00:10.00, start: 0.000000, bitrate: 4710 kb/s    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 4704 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)    Metadata:      handler_name    : VideoHandler      vendor_id       : [0][0][0][0]

你想去掉更多信息吗?你想去除所有关于输入、元数据和持续时间的信息吗?


接着你可以使用 -v error 或者 -v panic,这将进一步减少输出在屏幕上的信息。如果我需要对信息进行后处理或者将信息写入脚本而不需要多余的文本时,我就会经常使用这个命令行。


$ ffprobe crowdruncrf35.mp4 -hide_banner -v panic

 

酷,现在让我们看下输出并了解我们获取输出的不同格式。


审校者注

为了排查问题方便,banner信息和必要的调试信息输出是有必要的,或者当你需要带着问题去问别人的时候,为了节省不必要的因反复确认版本信息而造成浪费的时间,是一定要带上banner信息和详细的调试输出信息的。

 /


 

ffprobe中的流说明符(Stream Specifier)

我们经常会遇到包含多个视频和音频流(比如多种语言)的视频文件。现在我们假设你希望“只”检查音轨,那么通过ffprobe如何才能做到?接下来,就让我们一起来学习!

$$ ffprobe -hide_banner -i simpsons_1080p2398_clip.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'simpsons_1080p2398_clip.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : The Simpsons Movie - Trailer artist : 20th Century Fox date : 2007 encoder : Lavf58.56.100 genre : Trailer Duration: 00:00:19.99, start: 0.007007, bitrate: 4898 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800, 5277 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default) Metadata: handler_name : GPAC ISO Video Handler vendor_id : [0][0][0][0]

Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 126 kb/s (default) Metadata: handler_name : GPAC ISO Audio Handler vendor_id : [0][0][0][0]

如果你查看本篇文章中我所使用的《辛普森一家》预告片的输出,你就会发现它有两个流:一个视频流(stream #0:0)和一个音频流(stream #0:1)


如果我们想只检查音频流,你需要给ffprobe一个流说明符,告诉它只提供音频流信息。你可以使用下面的-select_streams 说明符完成这一操作。通过提到a:0,我们告诉ffprobe 检查索引=1的音频流。


ffprobe -hide_banner -v panic -select_streams v:0 -show_entries stream=bit_rate

输出如下所示。如你所见,它只提供索引=1的音频流码率。

[STREAM]bit_rate=5277205[/STREAM]



隐藏wrapper[STREAM]和[/STREAM]?


如果你查看ffprobe的输出,会发现它将信息放在wrapper[STREAM]和[/STREAM]中提供给你。要去除这个wrapper,你需要使用下列命令行:


noprint_wrappers=1

 

现在,我们测试一下前一个命令行并看下输出:


$$ ffprobe -v error -hide_banner -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1 simpsons_1080p2398_clip.mp4
bit_rate=5277205

如你所见,ffprobe只输出了视频的码率,没有wrapper!


 

如何使用ffprobe提取关于流、数据包、帧和容器格式的信息?


如你所知,ffprobe能够提供输入视频的每个流、数据包和帧的大量相关信息。为了获取这些信息,你必须执行下列命令:


1. 获取每个流的信息:-show_streams

2. 获取容器格式信息:-show_format

3. 获取每个数据包的信息:-show_packets

4. 获取帧的信息:-show_frames

  

| 使用ffprobe获取每个流的信息



让我们使用 -show_streams 说明符获取所有流的信息。


$$ ffprobe -v error -hide_banner -select_streams v:0 -show_streams simpsons_1080p2398_clip.mp4
[STREAM]index=0codec_name=h264codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10profile=Highcodec_type=videocodec_time_base=1001/48000codec_tag_string=avc1codec_tag=0x31637661width=1920height=800coded_width=1920coded_height=800closed_captions=0has_b_frames=1sample_aspect_ratio=N/Adisplay_aspect_ratio=N/Apix_fmt=yuv420plevel=41color_range=unknowncolor_space=unknowncolor_transfer=unknowncolor_primaries=unknownchroma_location=leftfield_order=unknowntimecode=N/Arefs=1is_avc=truenal_length_size=4id=N/Ar_frame_rate=24000/1001avg_frame_rate=24000/1001time_base=1/24000start_pts=48000start_time=2.000000duration_ts=433433duration=18.059708bit_rate=5277205max_bit_rate=N/Abits_per_raw_sample=8nb_frames=433nb_read_frames=N/Anb_read_packets=N/ADISPOSITION:default=1DISPOSITION:dub=0DISPOSITION:original=0DISPOSITION:comment=0DISPOSITION:lyrics=0DISPOSITION:karaoke=0DISPOSITION:forced=0DISPOSITION:hearing_impaired=0DISPOSITION:visual_impaired=0DISPOSITION:clean_effects=0DISPOSITION:attached_pic=0DISPOSITION:timed_thumbnails=0TAG:language=undTAG:handler_name=GPAC ISO Video HandlerTAG:vendor_id=[0][0][0][0][/STREAM]

上面的输出包含了很多关于流的关键信息。你可以查看视频高度、宽度、帧率、码率、视频大小、编解码器、编解码器级别和配置文件、像素格式、B帧的呈现等。


我们再进一步,接下来获取每个数据包的信息怎么样?


| 使用ffprobe获取每个数据包的信息

使用下列命令,你可以获取视频中每个数据包的信息,即使用-show_packets。出于演示目的,我只展示了其中一个数据包。你可以看到,它包含了pts、dts、duration和size等的详细信息。


$$ ffprobe -v error -hide_banner -select_streams v:0 -show_packets simpsons_1080p2398_clip.mp4[PACKET]codec_type=videostream_index=0pts=72024pts_time=3.001000dts=72024dts_time=3.001000duration=1001duration_time=0.041708convergence_duration=N/Aconvergence_duration_time=N/Asize=1094pos=738626flags=__[/PACKET]


是不是很棒?现在我们再深入一步来获取帧的信息。

  

| 使用ffprobe获取每帧信息


现在,让我们使用-show_frames获取每一帧的信息。输出包含大量信息:时间戳、宽度、高度、像素格式、图像类型(I帧、P帧和B帧)、图像序号(显示顺序和解码顺序)、色彩空间、帧是否为隔行扫描、帧是顶场优先还是底场优先,是否为关键帧等。无数关于帧的信息,对吧?


$$ ffprobe -v error -hide_banner -select_streams v:0 -show_frames simpsons_1080p2398_clip.mp4[FRAME]media_type=videostream_index=0key_frame=0pkt_pts=53005pkt_pts_time=2.208542pkt_dts=53005pkt_dts_time=2.208542best_effort_timestamp=53005best_effort_timestamp_time=2.208542pkt_duration=1001pkt_duration_time=0.041708pkt_pos=283117pkt_size=33853width=1920height=800pix_fmt=yuv420psample_aspect_ratio=N/Apict_type=Pcoded_picture_number=2display_picture_number=0interlaced_frame=0top_field_first=0repeat_pict=0color_range=unknowncolor_space=unknowncolor_primaries=unknowncolor_transfer=unknownchroma_location=left[/FRAME]


| 使用ffprobe获取容器格式信息


你也可以使用ffprobe命令行中的-show_format选项获取容器格式信息。你可以看到,它包含容器的所有信息、持续时间、视频大小、码率和容器附带的任何标签。


$$ ffprobe -v error -hide_banner -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4[FORMAT]filename=simpsons_1080p2398_clip.mp4nb_streams=2nb_programs=0format_name=mov,mp4,m4a,3gp,3g2,mj2format_long_name=QuickTime / MOVstart_time=0.007007duration=19.993000size=12242914bit_rate=4898880probe_score=100TAG:major_brand=isomTAG:minor_version=512TAG:compatible_brands=isomiso2avc1mp41TAG:title=The Simpsons Movie - TrailerTAG:artist=20th Century FoxTAG:date=2007TAG:encoder=Lavf58.56.100TAG:genre=Trailer[/FORMAT]

既然我们已经理解了使用ffprobe可获取的深度信息,让我们来看看如何漂亮地实现输出,然后很轻松地传递给后续操作(比如后处理或者压缩中使用等)。


 

输出格式:json、csv和xml


ffprobe拥有很多信息输出格式选项,你可以在默认格式(如我们在前例中看到的)、json、csv、xml、flat和ini输出格式中选择。

  

选择输出格式非常简单,在命令行中使用print_format <option> 即可。下面是几个输出如何查找show_format说明符的示例。


| 来自ffprobe的json输出


ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format json -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4

{ "format": { "filename": "simpsons_1080p2398_clip.mp4", "nb_streams": 2, "nb_programs": 0, "format_name": "mov,mp4,m4a,3gp,3g2,mj2", "format_long_name": "QuickTime / MOV", "start_time": "0.007007", "duration": "19.993000", "size": "12242914", "bit_rate": "4898880", "probe_score": 100, "tags": { "major_brand": "isom", "minor_version": "512", "compatible_brands": "isomiso2avc1mp41", "title": "The Simpsons Movie - Trailer", "artist": "20th Century Fox", "date": "2007", "encoder": "Lavf58.56.100", "genre": "Trailer" } }}


| 来自ffprobe的csv输出(也被称为“compact”)


ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format csv -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4

format,simpsons_1080p2398_clip.mp4,2,0,"mov,mp4,m4a,3gp,3g2,mj2",QuickTime / MOV,0.007007,19.993000,12242914,4898880,100,isom,512,isomiso2avc1mp41,The Simpsons Movie - Trailer,20th Century Fox,2007,Lavf58.56.100,Trailer


| 来自ffprobe的xml输出

ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format xml -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4

<?xml version="1.0" encoding="UTF-8"?><ffprobe> <format filename="simpsons_1080p2398_clip.mp4" nb_streams="2" nb_programs="0" format_name="mov,mp4,m4a,3gp,3g2,mj2" format_long_name="QuickTime / MOV" start_time="0.007007" duration="19.993000" size="12242914" bit_rate="4898880" probe_score="100"> <tag key="major_brand" value="isom"/> <tag key="minor_version" value="512"/> <tag key="compatible_brands" value="isomiso2avc1mp41"/> <tag key="title" value="The Simpsons Movie - Trailer"/> <tag key="artist" value="20th Century Fox"/> <tag key="date" value="2007"/> <tag key="encoder" value="Lavf58.56.100"/> <tag key="genre" value="Trailer"/> </format></ffprobe>


| 来自ffprobe的ini输出

ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format ini -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4# ffprobe output[format]filename=simpsons_1080p2398_clip.mp4nb_streams=2nb_programs=0format_name=mov,mp4,m4a,3gp,3g2,mj2format_long_name=QuickTime / MOVstart_time=0.007007duration=19.993000size=12242914bit_rate=4898880probe_score=100

[format.tags]major_brand=isomminor_version=512compatible_brands=isomiso2avc1mp41title=The Simpsons Movie - Trailerartist=20th Century Foxdate=2007encoder=Lavf58.56.100genre=Trailer


| 来自ffprobe的flat输出


ffprobe -v error -hide_banner -of default=noprint_wrappers=0 -print_format flat -select_streams v:0 -show_format simpsons_1080p2398_clip.mp4format.filename="simpsons_1080p2398_clip.mp4"format.nb_streams=2format.nb_programs=0format.format_name="mov,mp4,m4a,3gp,3g2,mj2"format.format_long_name="QuickTime / MOV"format.start_time="0.007007"format.duration="19.993000"format.size="12242914"format.bit_rate="4898880"format.probe_score=100format.tags.major_brand="isom"format.tags.minor_version="512"format.tags.compatible_brands="isomiso2avc1mp41"format.tags.title="The Simpsons Movie - Trailer"format.tags.artist="20th Century Fox"format.tags.date="2007"format.tags.encoder="Lavf58.56.100"format.tags.genre="Trailer"

  

  

使用ffprobe说明符提取信息


在上文中,我们已经学习了格式、流、数据包和帧级别的说明符,还学习了如何以xml、csv、json、flat和ini格式实现ffprobe输出。


现在,如果你希望使用ffprobe只提取编解码器细节,或者帧的大小,或图像类型,该怎么做呢?


ffprobe的流说明符同样也支持你指定和提取你所需的信息而不是输出所有信息。要使用这些说明符,你需要先使用format、stream、packet、frame选项,然后使用 -show_entries 以及你想要提取的关键信息。


通过示例会更容易理解。下面让我们输出视频的高和宽。


视频的高度和宽度在流相关信息中,所以我们需要先在命令行中指定选项-show_entries。然后我们使用 stream=width, height 来告诉ffprobe只提供流信息中的高度和宽度细节。


同样,我们也可以使用packet、format、frame和stream,然后指定关键信息(逗号分隔),这样就能输出我们需要的信息。


接下来,让我们看一些实用的示例!


  

使用ffprobe提取流信息示例


在学习完以上的内容之后,现在让我们看一些使用ffprobe提取信息的示例。


1、使用ffprobe说明符提取视频高度和宽度


为了使用ffprobe提取视频高度和宽度,你需要使用高度和宽度说明符,然后ffprobe便会返回数据。下面是命令行:

# height and width using ffprobe# output is printed in flat format

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

streams.stream.0.width=1920streams.stream.0.height=800


2、显示所有数据包的PTS


为了提取视频中所有数据包的PTS(Picture TimeStamp,图像时间戳),你需要使用修饰符packet=pts_time ,如下所示:


审校者注

AVPacket的packet里面有pts和pts_time,pts是一个长整型数数,我们直接看pts的时候需要自己根据timebase做一下换算,裸眼看pts信息难度会比较大,所以ffprobe也提供了一个pts_time,这个pts_time是pts与timebase做换算后的一个浮点数,展现形势也就比较直观了。而文中的PTS,还有一个解释是,presentation time stamp。

 /

# PTS of all the packets 

ffprobe -v error -hide_banner -of default=noprint_wrappers=1 -select_streams v:0 -show_entries packet=pts_time simpsons_1080p2398_clip.mp4
pts_time=2.000000pts_time=2.041708pts_time=2.208542pts_time=2.083417pts_time=2.125125pts_time=2.166833pts_time=2.375375pts_time=2.250250..

  

3、使用ffprobe查找视频持续时间并以xml格式输出

  

为了使用ffprobe提取视频持续时间,你需要使用修饰符stream=duration ,如下所示:

# print the duration of the video in XML format

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

<?xml version="1.0" encoding="UTF-8"?><ffprobe> <programs> </programs>

<streams> <stream duration="18.059708"/> </streams></ffprobe>

  

 4、 使用ffprobe输出图像类型


如果你想知道视频每一帧的图像类型,你需要获得帧相关信息。如果你查看了我们之前输出的帧相关信息,你会发现图像类型信息包含在pict_type 中。所以,让我们将它和修饰符frame 一起使用。


# Print the picture types of every frame in the flat format

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

frames.frame.0.pict_type="I"frames.frame.1.pict_type="P"frames.frame.2.pict_type="B"frames.frame.3.pict_type="B"frames.frame.4.pict_type="B"frames.frame.5.pict_type="P"frames.frame.6.pict_type="B"frames.frame.7.pict_type="B"frames.frame.8.pict_type="B"frames.frame.9.pict_type="P"frames.frame.10.pict_type="B"frames.frame.11.pict_type="B"frames.frame.12.pict_type="P"frames.frame.13.pict_type="P"frames.frame.14.pict_type="P"frames.frame.15.pict_type="P"frames.frame.16.pict_type="P"frames.frame.17.pict_type="P"frames.frame.18.pict_type="P"frames.frame.19.pict_type="B"frames.frame.20.pict_type="B"

  

5、使用ffprobe获取视频码率信息


视频码率输出在流相关信息中。所以,我们需要在命令行中指定 stream=bit_rate 来获取视频码率。


# Extract the bitrate of a video using ffprobe 

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

streams.stream.0.bit_rate="5277205"

   

6、使用ffprobe输出编解码器信息


在哪里获取编解码器细节?在流相关信息中,对吧?所以让我们使用stream说明符获取所有信息。

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

streams.stream.0.codec_name="h264"streams.stream.0.codec_long_name="H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"streams.stream.0.profile="High"streams.stream.0.codec_tag_string="avc1"

  

  

7、使用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

streams.stream.0.pix_fmt="yuv420p"


结语


就到这里了,朋友们。我们已经到了ffprobe教程的尾声,我希望今天的文章对你有帮助。更多关于ffprobe的信息,你可以参考官方文档:
https://ffmpeg.org/ffprobe.html。如果你有任何使用ffprobe的便捷方法,欢迎在评论处补充。

感谢阅读,保重!Happy streaming!

致谢:
本文已获得作者Krishna Rao Vijayanagar授权翻译和发布,特此感谢。

原文链接:
https://ottverse.com/ffprobe-comprehensive-tutorial-with-examples/




▼识别二维码或猛戳下图订阅课程

喜欢我们的内容就点个“在看”吧!

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
惊悚刺激,偷窥者成了被偷窥者第一期笔译基础课(内含公开课视频链接)Nanjing University Probes Academic Staff Accused of Rape明星导师文书辅导示例 | 如何最大化优势、特色?【帝都1106】(内含部分嘉宾资料)羽毛球交友第七期:新的故事,正在酝酿~聊一款适合教师使用的笔记本电脑冬天养生吃姜再也不用熬煮,一瓶含7.5斤小黄姜!每天两滴,告别手脚冰冷,温暖全身!​O for a Muse of Fire 是个梗啊!(内含福利)一个人的徒步,900公里法国之路+世界尽头:D03~黄道日出游我 說 冰 夫青铜白银黄金王者,时间排位赛里你是哪一级玩家?对号入座吧!(内含福利)【广州1030】68元就可以体验一场甜甜的恋爱?!(内含嘉宾信息)板块指数RPS编制教程(221106)60 个重要的 Python 小示例硬核观察 #737 现代公司的电动汽车在其车载系统使用教程上的示例密钥Blender自学基础教程2.0——6.综合运用-CGurman:苹果M2 Pro / Max MacBook Pro14/16英寸和Mac Pro新款将于23年Q1发布【杭州1106】(内含部分嘉宾资料)爱的丘比特一箭钟情 8分钟射箭交友来啦限时领!《Cambridge Primary Path》剑桥少儿综合教材如何写出让招生官刮目相看的CommonApp主文书(含示例)荷兰乡村夏日风貌一瞥限时领丨《乐乐课堂》小学数学1-6年级全十二册284个视频教程(全)同样是PM,Product Manager、Program Manager、Project Manager的薪资哪个更高?【成都1007饭否】(内含部分嘉宾信息)恰饭之夜 ~~~【帝都1026】(内含嘉宾资料)嗨歌KTV&德扑微桌游:释放压力和情绪,听听TA为你唱的歌我和 TA 是最佳伴侣吗?从这 3 方面评估(内含测评)Blender自学基础教程2.0——4.综合运用-A【魔都1030】(内含部分嘉宾信息)「90后脱单专场」沈腾宣布减肥成功!半年“普拉提”瘦下20斤,网友:颜值重回军艺校草!(内含福利)Blender自学基础教程2.0——4.综合运用-B华人Lee(花名雞仔)网站论坛有感F1美国大奖赛FP1&FP2:法拉利车手暂时领先,2023轮胎测试完成声援 Library Genesis 和 Sci-Hub(内含Z-Lib镜像链接)F1墨西哥大奖赛FP1&FP2:拉塞尔全天最快,勒克莱尔撞墙
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。