Chúng ta cần phải phát hiện video bitrate của một dòng HLS
với ffprobe
bằng cách sử dụng các tập tin m3u8
của .ts
.Làm thế nào để phát hiện bitrate video từ HLS tập tin/M3U8 sử dụng ffprobe
Nếu tôi sử dụng m3u8
, tôi có thể nhận được trong suốt thời gian, kích thước, codec được sử dụng, âm thanh bitrate, nhưng không có video bitrate có sẵn trong các phản ứng cung cấp bởi ffprobe
.
ffprobe -print_format json -show_format -show_streams -show_error http://gfrmedia-video-platform.s3.amazonaws.com/bumbia/2014/06/06/158217_20160126214307_bumbia-hls/hls1056k/158217_640x360-with-mp4-hls_bumbia-hls.m3u8
ffprobe version 2.8.3 Copyright (c) 2007-2015 the FFmpeg developers
built with Apple LLVM version 7.0.0 (clang-700.1.76)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-vda
libavutil 54. 31.100/54. 31.100
libavcodec 56. 60.100/56. 60.100
libavformat 56. 40.101/56. 40.101
libavdevice 56. 4.100/56. 4.100
libavfilter 5. 40.101/5. 40.101
libavresample 2. 1. 0/2. 1. 0
libswscale 3. 1.101/3. 1.101
libswresample 1. 2.101/1. 2.101
libpostproc 53. 3.100/53. 3.100
{
[http @ 0x7fcf09e19420] No trailing CRLF found in HTTP header.
Input #0, hls,applehttp, from 'http://gfrmedia-video-platform.s3.amazonaws.com/bumbia/2014/06/06/158217_20160126214307_bumbia-hls/hls1056k/158217_640x360-with-mp4-hls_bumbia-hls.m3u8':
Duration: 00:00:11.00, start: 9.940500, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0]/0x001B), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1: Audio: aac (LC) ([15][0][0][0]/0x000F), 44100 Hz, stereo, fltp, 79 kb/s
"streams": [
{
"index": 0,
"codec_name": "h264",
"codec_long_name": "H.264/AVC/MPEG-4 AVC/MPEG-4 part 10",
"profile": "Constrained Baseline",
"codec_type": "video",
"codec_time_base": "1001/60000",
"codec_tag_string": "[27][0][0][0]",
"codec_tag": "0x001b",
"width": 640,
"height": 360,
"coded_width": 640,
"coded_height": 368,
"has_b_frames": 0,
"sample_aspect_ratio": "1:1",
"display_aspect_ratio": "16:9",
"pix_fmt": "yuv420p",
"level": 30,
"chroma_location": "left",
"refs": 1,
"is_avc": "0",
"nal_length_size": "0",
"r_frame_rate": "30000/1001",
"avg_frame_rate": "30000/1001",
"time_base": "1/90000",
"start_pts": 900000,
"start_time": "10.000000",
"bits_per_raw_sample": "8",
"disposition": {
"default": 0,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
}
},
{
"index": 1,
"codec_name": "aac",
"codec_long_name": "AAC (Advanced Audio Coding)",
"profile": "LC",
"codec_type": "audio",
"codec_time_base": "1/44100",
"codec_tag_string": "[15][0][0][0]",
"codec_tag": "0x000f",
"sample_fmt": "fltp",
"sample_rate": "44100",
"channels": 2,
"channel_layout": "stereo",
"bits_per_sample": 0,
"r_frame_rate": "0/0",
"avg_frame_rate": "0/0",
"time_base": "1/90000",
"start_pts": 894645,
"start_time": "9.940500",
"bit_rate": "79931",
"disposition": {
"default": 0,
"dub": 0,
"original": 0,
"comment": 0,
"lyrics": 0,
"karaoke": 0,
"forced": 0,
"hearing_impaired": 0,
"visual_impaired": 0,
"clean_effects": 0,
"attached_pic": 0
}
}
],
"format": {
"filename": "http://gfrmedia-video-platform.s3.amazonaws.com/bumbia/2014/06/06/158217_20160126214307_bumbia-hls/hls1056k/158217_640x360-with-mp4-hls_bumbia-hls.m3u8",
"nb_streams": 2,
"nb_programs": 1,
"format_name": "hls,applehttp",
"format_long_name": "Apple HTTP Live Streaming",
"start_time": "9.940500",
"duration": "11.000000",
"size": "281",
"bit_rate": "204",
"probe_score": 100
}
}
Trong mẫu này ở trên, tôi biết rằng video là khoảng 520Kbps, nhưng cần phải tìm một cách để đọc mà programatically với một trong hai ffprobe
hoặc bất kỳ cách nào khác. Với những gì tôi hiện có, tôi có thể nhận được hầu hết thông tin cần thiết, nhưng tôi thiếu một giá trị quan trọng là video bitrate.
Tôi có thể thử các tùy chọn nào khác?
Cảm ơn!