Uragan66
17-11-2019, 09:30
Добрый день всем!
Возникла небольшая проблема с рег. выражением.
По ссылкам посредством FFprobe получаю данные о видеопотоках.
Лог такого содержания:
ffprobe started on 2019-11-16 at 21:38:15
Report written to "ffprobe-20191116-213815.log"
Command line:
"I:\\\xd1\xea\xf0\xe8\xef\xf2\xfb Python\\udp_parser\\log\\ffprobe.exe" -hide_banner -show_streams -timeout 500000 http://109.200.253.165:4022/udp/224.5.1.1:1234 -report
[NULL @ 01284e40] Opening "http://109.200.253.165:4022/udp/224.5.1.1:1234" for reading
[http @ 0126e000] Setting default whitelist "http,https,tls,rtp,tcp,udp,crypto,httpproxy"
[tcp @ 01272f80] Original list of addresses:
[tcp @ 01272f80] Address 92.244.96.211 port 443
[tcp @ 01272f80] Interleaved list of addresses:
[tcp @ 01272f80] Address 92.244.96.211 port 443
[tcp @ 01272f80] Starting connection attempt to 92.244.96.211 port 443
[tcp @ 01272f80] Successfully connected to 92.244.96.211 port 443
[http @ 0126e000] request: GET /udp/239.0.0.1:1234 HTTP/1.1
User-Agent: Lavf/58.20.100
Accept: */*
Range: bytes=0-
Connection: close
Host: 92.244.96.211:443
Icy-MetaData: 1
[mpegts @ 01284e40] Format mpegts probed with size=2048 and score=50
[mpegts @ 01284e40] stream=0 stream_type=2 pid=f1 prog_reg_desc=CUEI
[mpegts @ 01284e40] stream=1 stream_type=3 pid=f2 prog_reg_desc=CUEI
[mpegts @ 01284e40] Before avformat_find_stream_info() pos: 0 bytes read:37960 seeks:0 nb_streams:3
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Format yuv420p chosen by get_format().
[mpegts @ 01284e40] max_analyze_duration 5000000 reached at 5016000 microseconds st:1
[mpegts @ 01284e40] After avformat_find_stream_info() pos: 2088304 bytes read:2090696 seeks:0 frames:338
"from":"http://109.200.253.165:4022/udp/224.5.1.1:1234"
Duration: N/A, start: 26217.541478, bitrate: N/A
Program 4
Metadata:
"service_name":"NOVY CHANNEL"
service_provider: Harmonic
Stream #0:0[0xf1], 127, 1/90000: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0xf2], 211, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:2[0x59], 0, 1/90000: Data: scte_35
Unsupported codec with id 98305 for input stream 2
[AVIOContext @ 0128eec0] Statistics: 2090696 bytes read, 0 seeks
ffprobe started on 2019-11-16 at 21:38:21
Report written to "ffprobe-20191116-213821.log"
Необходимо вытащить данные из строк "from": и "service_name":
Написал код:
(Get-Content .\log\ffprobe-20191116-213815.log -Encoding utf8 `
| Select-String -Encoding utf8 -Pattern '"from":"([^"]+)"[\S\s]*"service_name":"([^"]+)"[\S\s]*' `
-AllMatches).Matches | ForEach-Object {"$($_.Groups[2].Value)`n$($_.Groups[1].Value)"}
Вроде всё правильно, но код не работает. По одному значения вытаскиваются без проблем, а вместе ни в какую...
Подскажите, пожалуйста, где ошибка в моём коде ? Или может по-другому можно решить эту задачу ?
Возникла небольшая проблема с рег. выражением.
По ссылкам посредством FFprobe получаю данные о видеопотоках.
Лог такого содержания:
ffprobe started on 2019-11-16 at 21:38:15
Report written to "ffprobe-20191116-213815.log"
Command line:
"I:\\\xd1\xea\xf0\xe8\xef\xf2\xfb Python\\udp_parser\\log\\ffprobe.exe" -hide_banner -show_streams -timeout 500000 http://109.200.253.165:4022/udp/224.5.1.1:1234 -report
[NULL @ 01284e40] Opening "http://109.200.253.165:4022/udp/224.5.1.1:1234" for reading
[http @ 0126e000] Setting default whitelist "http,https,tls,rtp,tcp,udp,crypto,httpproxy"
[tcp @ 01272f80] Original list of addresses:
[tcp @ 01272f80] Address 92.244.96.211 port 443
[tcp @ 01272f80] Interleaved list of addresses:
[tcp @ 01272f80] Address 92.244.96.211 port 443
[tcp @ 01272f80] Starting connection attempt to 92.244.96.211 port 443
[tcp @ 01272f80] Successfully connected to 92.244.96.211 port 443
[http @ 0126e000] request: GET /udp/239.0.0.1:1234 HTTP/1.1
User-Agent: Lavf/58.20.100
Accept: */*
Range: bytes=0-
Connection: close
Host: 92.244.96.211:443
Icy-MetaData: 1
[mpegts @ 01284e40] Format mpegts probed with size=2048 and score=50
[mpegts @ 01284e40] stream=0 stream_type=2 pid=f1 prog_reg_desc=CUEI
[mpegts @ 01284e40] stream=1 stream_type=3 pid=f2 prog_reg_desc=CUEI
[mpegts @ 01284e40] Before avformat_find_stream_info() pos: 0 bytes read:37960 seeks:0 nb_streams:3
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Invalid frame dimensions 0x0.
[mpeg2video @ 0128adc0] Format yuv420p chosen by get_format().
[mpegts @ 01284e40] max_analyze_duration 5000000 reached at 5016000 microseconds st:1
[mpegts @ 01284e40] After avformat_find_stream_info() pos: 2088304 bytes read:2090696 seeks:0 frames:338
"from":"http://109.200.253.165:4022/udp/224.5.1.1:1234"
Duration: N/A, start: 26217.541478, bitrate: N/A
Program 4
Metadata:
"service_name":"NOVY CHANNEL"
service_provider: Harmonic
Stream #0:0[0xf1], 127, 1/90000: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0xf2], 211, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:2[0x59], 0, 1/90000: Data: scte_35
Unsupported codec with id 98305 for input stream 2
[AVIOContext @ 0128eec0] Statistics: 2090696 bytes read, 0 seeks
ffprobe started on 2019-11-16 at 21:38:21
Report written to "ffprobe-20191116-213821.log"
Необходимо вытащить данные из строк "from": и "service_name":
Написал код:
(Get-Content .\log\ffprobe-20191116-213815.log -Encoding utf8 `
| Select-String -Encoding utf8 -Pattern '"from":"([^"]+)"[\S\s]*"service_name":"([^"]+)"[\S\s]*' `
-AllMatches).Matches | ForEach-Object {"$($_.Groups[2].Value)`n$($_.Groups[1].Value)"}
Вроде всё правильно, но код не работает. По одному значения вытаскиваются без проблем, а вместе ни в какую...
Подскажите, пожалуйста, где ошибка в моём коде ? Или может по-другому можно решить эту задачу ?