كيف يمكنني الحصول على الدقة (العرض والارتفاع) لملف فيديو من سطر أوامر linux؟




4 Answers

استخدم ffprobe (جزء من مجموعة أدوات FFmpeg)

مثال:

ffprobe -v quiet -print_format json -show_format -show_streams ~/Movies/big_buck_bunny_720p_5mb.mp4

انتاج:

{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "Main",
            "codec_type": "video",
            "codec_time_base": "1/50",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1280,
            "height": 720,
            "coded_width": 1280,
            "coded_height": 720,
            "has_b_frames": 0,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 31,
            "chroma_location": "left",
            "refs": 1,
            "is_avc": "1",
            "nal_length_size": "4",
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/12800",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 378368,
            "duration": "29.560000",
            "bit_rate": "1032960",
            "bits_per_raw_sample": "8",
            "nb_frames": "739",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0
            },
            "tags": {
                "creation_time": "1970-01-01 00:00:00",
                "language": "und",
                "handler_name": "VideoHandler"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "LC",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 6,
            "channel_layout": "5.1",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 1419264,
            "duration": "29.568000",
            "bit_rate": "383960",
            "max_bit_rate": "416704",
            "nb_frames": "1386",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0
            },
            "tags": {
                "creation_time": "1970-01-01 00:00:00",
                "language": "und",
                "handler_name": "SoundHandler"
            }
        }
    ],
    "format": {
        "filename": "/Users/farsheed/Movies/big_buck_bunny_720p_5mb.mp4",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "format_long_name": "QuickTime / MOV",
        "start_time": "0.000000",
        "duration": "29.568000",
        "size": "5253880",
        "bit_rate": "1421504",
        "probe_score": 100,
        "tags": {
            "major_brand": "isom",
            "minor_version": "512",
            "compatible_brands": "isomiso2avc1mp41",
            "creation_time": "1970-01-01 00:00:00",
            "encoder": "Lavf53.24.2"
        }
    }
}

انظر الوثائق لمزيد من المعلومات.

linux command-line video ffmpeg resolution

لقد كنت أحفر من خلال mplayer / mencoder و ffmpeg الوثائق ولا أستطيع أن أتحدث عن أي شيء . أنا لست من الصعب إرضاءه بشكل خاص بالنسبة إلى تنسيق الإخراج حيث يمكنني استخدام تعبير عادي لسحبه ، لا يمكنني الحصول على البيانات في المقام الأول.




استخدم ffprobe :

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4

مثال على الناتج:

1280x720

انظر ffprobe و FFmpeg Wiki: FFprobe نصائح لمزيد من المعلومات.




لإرجاع فقط العرض والارتفاع mediainfo هو أداة ممتازة.

mediainfo --Inform = "الفيديو ؛٪ Width٪" Videofile && mediainfo --Inform = "الفيديو ؛٪ Height٪" ستقوم خدمة Videofile بعمل ذلك بالضبط ، لا أكثر ولا أقل ، لمجموعة كبيرة من ملفات الفيديو المدعومة.

هناك قائمة طويلة من مفيدة Inform= المعلمات التي يمكنك الحصول عليها مع الأمر mediainfo --Info-Parameters

إذا كنت ترغب في استخدام الإخراج بتنسيق WidthXHeight القياسي Width=$(mediainfo --Inform="Video;%Width%" Video.File)&& Height=$(mediainfo --Inform="Video;%Height%" Video.File)&&echo $Width"X"$Height

هناك نص مكتوب في bash here يمكنك تعديله بسهولة لتلبية احتياجاتك.

مصادر:

إضافة تراكب باستخدام FFMPEG مع إعادة ترميز الحد الأدنى

http://manpages.ubuntu.com/manpages/xenial/man1/mediainfo.1.html

whiptail: كيفية إعادة توجيه الإخراج إلى متغير البيئة؟

كيفية ربط متغيرات السلسلة في باش




وهنا "شبه واحد" لقد قمت باختراع حول ffprobe لهذا الغرض بالضبط. يعمل بشكل جيد بالنسبة لي على كل من Linux و MacOS.

#!/bin/bash

B='[[:blank:]]'
D='[[:digit:]]'
ffprobe "$1" 2>&1 \
    | grep 'Stream.*Video.*fps' \
    | sed "s/^.*$B\($D$D$D*x$D$D$D*\).*$/\1/"



Related