Yet more bugs in latest 2.95dev code

Vangelis forthnet northmedia1 at the.forthnet.gr
Tue Feb 9 08:45:51 PST 2016


The latest publicly released 2.95dev code
(for the main perl script) at the time of posting
is at commit git-488ab9b:

https://raw.githubusercontent.com/get-iplayer/get_iplayer/488ab9b6a2b53481afd4c57aa8c40f3f60a0c4f2/get_iplayer

In addition to previous bug reported at :

http://lists.infradead.org/pipermail/get_iplayer/2016-February/008658.html

further testing revealed two additional bug(s) ...

"get_iplayer-295dev-latest.pl" = "get_iplayer-295dev-g488ab9b.pl"

A. no --raw/--stop

If I issue:

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force

the native perl ("built-in") HLS downloader will be used
to record live radio:
=====================================
INFO Trying to stream pid using type liveradio
INFO: pid found in cache
Matches:
80132:  BBC Radio 2 - live

INFO: 1 Matching Programmes
INFO: Checking existence of default version
INFO: hlsmed1,hlsmed2,hlslow1,hlslow2 modes will be tried for version 
default
INFO: Trying hlsmed1 mode to record liveradio: BBC Radio 2 - live
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_16_11_42
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_16_11_42.partial.m4a.ts
Recording:     0.31MB @   510kbps [00:00:05]
=====================================

The partial file is correctly reported as
"*.partial.m4a.ts"; if I kill the recording
I end up with .ts file:
"BBC_Radio_2_live_2016-02-09_16_11_42.partial.m4a.ts"
which is OK.

If OTOH I choose to use FFmpeg for the recording
(the only choice for GiP 2.94), then I would issue:

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --hlsffmpeg

and:
=====================================
(snipped)
INFO: Trying hlsmed1 mode to record liveradio: BBC Radio 2 - live
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_16_14_22
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_16_14_22.m4a
size=     428kB time=00:00:32.08 bitrate= 109.3kbits/s speed= 1.7x
=====================================

In this case the script reports the partial file name as "*.m4a";
this does not seem right; it is again AppleHLS recording,
for consistency it should again (as with "built-in")
be "*.partial.m4a.ts"; however, it appears to be just a
"cosmetic" bug, because when I kill the recording I am
left with file:
"BBC_Radio_2_live_2016-02-09_16_14_22.partial.m4a.ts"
which is OK...

B. --raw

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --raw

=====================================
(snipped)
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_17_22_57.partial.ts
Recording:     0.54MB @   223kbps [00:00:20]
=====================================

partial file named: "*.partial.ts" which is correct,
kill the recording to be left with "*.partial.ts" file (OK).

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --raw 
 --hlsffmpeg

=====================================
(snipped)
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_17_30_02
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_17_30_02.ts
size=     172kB time=00:00:12.88 bitrate= 109.1kbits/s speed=11.7x
=====================================

partial file name reported as: "*.ts" ; for consistency with
the built-in HLS downloader, it should again be "*.partial.ts".
Killing the recording leaves you with "*.partial.ts" file,
which is OK.

C. --raw & --stop

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --raw 
 --stop 30

=====================================
(snipped)
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_17_40_27
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_17_40_27.partial.ts
INFO: Recorded: 0.39MB in 00:00:19 at   168kbps to D:\Vangelis\iPlayer 
Recording
s\BBC_Radio_2_live_2016-02-09_17_40_27.partial.ts
INFO: Recorded file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016-02-09_
17_40_27.ts
=====================================

Everything appears as it should...
OTOH:

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --raw 
 --stop 30 --hlsffmpeg

=====================================
(snipped)
INFO: Trying hlsmed1 mode to record liveradio: BBC Radio 2 - live
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_17_44_11
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_17_44_11.ts
size=     400kB time=00:00:30.03 bitrate= 109.2kbits/s speed=1.81x

C:\Program Files\get_iplayer>
=====================================

Partial file name: "*.ts" (wrong, it should be "*.partial.ts").
End file name (not reported by the script, but found
inside downloads folder): "*.partial.ts" (wrong, it should be
"*.ts" and also reported by the script for consistency reasons...).

... And finally:

D. no --raw, only --stop

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --stop 
30

=====================================
(snipped)
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_17_52_51
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_17_52_51.partial.m4a.ts
INFO: Recorded: 0.39MB in 00:00:19 at   168kbps to D:\Vangelis\iPlayer 
Recording
s\BBC_Radio_2_live_2016-02-09_17_52_51.partial.m4a.ts
INFO: Begin converting file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_201
6-02-09_17_52_51.partial.m4a.ts
size=     379kB time=00:00:32.00 bitrate=  97.0kbits/s speed=1.39e+003x
INFO: Converted file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016-02-09
_17_52_51.partial.m4a
INFO: Recorded file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016-02-09_
17_52_51.m4a

INFO: MP4 tagging M4A file

 Started writing to temp file.
 Progress: =============================================>100%|
 Finished writing to temp file.

C:\Program Files\get_iplayer>
=====================================

Partial file name: "*.partial.m4a.ts" (OK)
Partial file losslessly remuxed to "*.partial.m4a" (OK)
"*.partial.m4a" file tagged to end file "*.m4a" (OK).

OTOH

perl 
get_iplayer-295dev-latest.pl --type=liveradio --pid=bbc_radio_two --force --stop 
30 --hlsffmpeg

=====================================
(snipped)
INFO: Trying hlsmed1 mode to record liveradio: BBC Radio 2 - live
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_18_03_38
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_18_03_38.m4a
size=     400kB time=00:00:30.03 bitrate= 109.1kbits/s speed= 2.4x

C:\Program Files\get_iplayer>
=====================================

Partial file name: "*.m4a" (wrong)
The recording leaves you with an end file named:
"*.partial.m4a.ts" which is indeed an MPEG-TS
media file not remuxed to MP4 container,
nor tagged by AP... :-(

I haven't checked the "regression range" for the bug
that does not name correctly the initial (partial) recording
when --hlsffmpeg is used in scenarios A to D; GiP 2.94,
which only employs FFmpeg for HLS, does this correctly.
 In scenario D, the bug that does not process the partial
recording to end MP4 file has been introduced in commit
git-8a90279 (Merged HLS/DASH streamers, added MPEG-DASH support for live 
radio),
as the last "good" commit is the immediately preceding,
i.e. git-4f5717d (Make --exclude-supplier more lenient):

perl 
get_iplayer-295dev-g4f5717d.pl --type=liveradio --pid=bbc_radio_two --force  
--stop 30 --hlsffmpeg

=====================================
(snipped)
INFO: File name prefix = BBC_Radio_2_live_2016-02-09_18_30_14
INFO: Begin recording file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016
-02-09_18_30_14.m4a
size=     405kB time=00:00:30.03 bitrate= 110.4kbits/s speed=2.34x
INFO: Begin converting file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_201
6-02-09_18_30_14.partial.m4a.ts
size=     356kB time=00:00:30.03 bitrate=  97.0kbits/s speed=1.43e+003x
INFO: Converted file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016-02-09
_18_30_14.partial.m4a
INFO: Recorded file: D:\Vangelis\iPlayer 
Recordings\BBC_Radio_2_live_2016-02-09_
18_30_14.m4a

INFO: MP4 tagging M4A file

 Started writing to temp file.
 Progress: =============================================>100%|
 Finished writing to temp file.

C:\Program Files\get_iplayer>
=====================================

... still wrong partial file name reported by script,
but successful generation of final (tagged) file "*.m4a".

 I am legally CUT OFF from live TV, hence not able to check
whether --type=livetv also produces similar types of bugged
results with --hlsffmpeg (???) .

As a summary, bugs exist in latest dev code
when Liveradio is recorded with FFmpeg
rather than the native Perl HLS downloader...

I realise this is an extended post, I do also
hope it gets the attention it merits from the
code maintainer (dinkypumpkin).

Kind regards,
Vangelis. 




More information about the get_iplayer mailing list