11
votes

FFMPEG: Lire les informations de niveau de profil de MP4

J'ai un fichier MP4 et j'ai besoin du niveau de profil de celui-ci. FFMPEG dit, il a un profil de base, qui est ce dont j'ai besoin, mais j'ai aussi besoin de niveau .

Voici ce que je reçois de FFMPEG: xxx

existe une option autre que -i je peux utiliser pour obtenir le Informations de niveau?


0 commentaires

4 Réponses :


20
votes

Essayez FFProbe -Show_streams code>.

FFProbe code> est fourni avec FFMPEG et donne de nombreuses informations sur les fichiers vidéo, y compris les informations de niveau, par exemple: P>

$ ffprobe -loglevel error -show_streams Test.mp4 
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
codec_type=video
codec_time_base=1001/48000
codec_tag_string=avc1
codec_tag=0x31637661
width=704
height=400
has_b_frames=0
sample_aspect_ratio=N/A
display_aspect_ratio=N/A
pix_fmt=yuv420p
level=51                 <== level!
timecode=N/A
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=24000/1001
avg_frame_rate=1384898760/57761819
time_base=1/44100
start_time=0.000000
duration=6548.959070
bit_rate=701946
nb_frames=157018
nb_read_frames=N/A
nb_read_packets=N/A
TAG:creation_time=2006-08-17 18:14:49
TAG:language=eng
TAG:handler_name=
[/STREAM]


5 commentaires

Oui cela me donne plus d'informations, mais moins que vous obtenez de votre fichier et non les informations de niveau: /


HM, si FFProbe ne le montre pas, alors je me demande si c'est vraiment là. Avez-vous été capable d'obtenir les informations de niveau pour le fichier en utilisant des outils autres (non-CLI) tels que VLC?


@ Martin, se demandant ce que vous entendez par «moins que vous obtenez de votre fichier et non les informations de niveau». Est niveau dans la section de flux vidéo et non ce que vous voulez?


Mais il inclura également des flux audio, certains ont également des informations de niveau. En outre, il est difficile d'analyser et de ralentir sur plusieurs fichiers. Peut-être que vous voulez le voir dans profil: hauteur@l4.0 format. Consultez ma réponse.


@blahdibla, mais FFProbe fait Afficher le niveau Value - C'est un peu enterré dans la sortie affichée, mais cherche niveau = 51 .



5
votes

Vous pouvez utiliser mp4box avec option -Info pour ce type de sortie:

Track # 2 Info - TrackID 2 - TimeScale 25000 - Duration 01:29:42.160
Media Info: Language "Undetermined" - Type "vide:avc1" - 134554 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1280 x 720 - **Profile High @ Level 3.1**
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 1280 x 720
Synchronized on stream 1


0 commentaires

1
votes

Essayez ce qui suit pour obtenir la sortie plus détaillée dans JSON

$ ffprobe -print_format json -show_streams -show_format <filepath>


1 commentaires

-Show_format sera en plus des info de conteneur d'impression, il n'y a aucune information de profil, mais la sortie JSON pourrait venir utile à certains



10
votes

FFProbe strong> avec show_tries forge> doit être plus rapide, et il dispose de plus d'options pour afficher uniquement les données pertinentes et filtrer uniquement le flux vidéo.

Filtrer uniquement la vidéo ( Ajouter aussi: 0 Pour filtrer uniquement le premier flux vidéo) P>

:ffprobeGetFormatProfile <exe> <infile> <outStr>
echo.
echo FILE: %2

set tmpProfile=
set tmpLevel=
for /f "usebackq delims== tokens=1-2" %%a in (`%~s1 -v error -select_streams v:0 -show_entries stream^=profile^,level -of default^=noprint_wrappers^=1 %2`) do (
    if /I %%a == profile set tmpProfile=%%b
    if /I %%a == level set tmpLevel=%%b
)
if not defined tmpLevel set tmpLevel=??
echo on
set %3=%tmpProfile%@%tmpLevel:~0,1%.%tmpLevel:~1%
@echo off

exit /b %errorlevel%


0 commentaires