Closed n0012 closed 7 years ago
From the terminal within the docker container, I can ping the hdhomerun_host.
Any thoughts? Maddox, you think this issue resides on the Docker side or wallop?
Side note - I've tried using HDHRViewerV2, without a lot of luck on the transcoding side. Would be great if wallop could integrate with PLEX as a Channel like HDHRViewer does, and actually render well over mobile connections. http://hdhrviewer.zynine.net/hdhrviewerv2-initial-setup/
This is where it's erring: https://github.com/maddox/wallop/blob/master/lib/wallop.rb#L128
Do you have a section in your config defining channel logos? It should look like this:
[channel_logos]
506 = "cbs.png"
508 = "abc.png"
511 = "fox.png"
512 = "nbc.png"
Side note - I've tried using HDHRViewerV2, without a lot of luck on the transcoding side. Would be great if wallop could integrate with PLEX as a Channel like HDHRViewer does, and actually render well over mobile connections.
Why not just use that plugin instead of Wallop?
Why not just use that plugin instead of Wallop?
I haven't found it to work that well. Lots of buffering etc. Hoping wallop will work better.
Well, the whole point of using Plex channels is to pipe it through their transcoder. So I suspect it'd have the same results. You wouldn't actually use Wallop, you'd just use Plex's internal transcoder.
Well, the whole point of using Plex channels is to pipe it through their transcoder. So I suspect it'd have the same results. You wouldn't actually use Wallop, you'd just use Plex's internal transcoder.
Gotcha. I'll let you know my feedback after I can compare experiences between the Plex Channel and Wallop.
Got it resolved. My working config for a docker container running on OSX is as follows. So far working much better than HDHRViewerV2 - the ffmpeg transcoder must handle real time mpg2 to mpg4 better than Plex's built in transcoder....
I also like the options you offer up in the settings menu to throttle the stream quality when needed.
hdhomerun_host = "10.0.0.50" hdhr_transcode = false ffmpeg_path = "/ffmpeg/bin/ffmpeg" transcoding_path = "/tmp" port = "8888" hd_start = 1
[ffmpeg] threads = 4 acodec = "libfdk_aac" framerate = "29.97" h264_preset = "superfast" hls_time = 2 hls_wrap = 40 options = "-loglevel warning -async 1 -tune zerolatency -flags -global_header -fflags +genpts -map 0:0 -map 0:1"
[channel_logos] 506 = "cbs.png" 508 = "abc.png" 511 = "fox.png" 512 = "nbc.png"
Great!
I receive an Internal Server Error after firing up wallop via docker. See below, and let me know if I provide any additional details.
config.toml ffmpeg_path = "/ffmpeg/bin/ffmpeg" acodec = "libfdk_aac" transcoding_path = "/tmp" hdhomerun_host = "10.0.0.106" port = "8888"
docker startup command docker run --rm --name wallop -v $(pwd)/config.toml:/wallop/config/config.toml -p 8888:8888 ipstatic/wallop:latest
hdhr firmware 20160902beta3
hdhr channel lineup http://10.0.0.106/lineup.json returns json
Docker Terminal Output after accessing http://localhost:8888 and receiving Internal Server Error == Sinatra (v1.4.7) has taken the stage on 8888 for production with backup from Thin 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET / HTTP/1.1" 302 - 0.0026 2016-09-18 08:56:33 - NoMethodError - undefined method
[]' for nil:NilClass: /wallop/lib/wallop.rb:128:in
block in lineup' /wallop/lib/wallop.rb:126:ineach' /wallop/lib/wallop.rb:126:in
lineup' /wallop/lib/wallop.rb:143:infavorite_lineup' app/app.rb:45:in
block in class:App' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in
block in compile!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:inblock (3 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:in
route_eval' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:inblock (2 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:in
block in process_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:incatch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in
process_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:inblock in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in
each' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:inroute!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:in
block in dispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:inblock in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:ininvoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:in
dispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:inblock in call!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
block in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:incatch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:incall!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/logger.rb:15:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:212:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/head.rb:13:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in
block in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:insynchronize' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:86:inblock in pre_process' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:in
catch' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:inpre_process' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:inblock in spawn_threadpool' 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET /channels?type=favorites HTTP/1.1" 500 30 0.0196 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET / HTTP/1.1" 302 - 0.0015 2016-09-18 08:56:33 - NoMethodError - undefined method
[]' for nil:NilClass: /wallop/lib/wallop.rb:128:inblock in lineup' /wallop/lib/wallop.rb:126:in
each' /wallop/lib/wallop.rb:126:inlineup' /wallop/lib/wallop.rb:143:in
favorite_lineup' app/app.rb:45:inblock in <class:App>' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:inblock in compile!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in
block (3 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:inroute_eval' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in
block (2 levels) in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:inblock in process_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in
catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:inprocess_route' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:in
block in route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:ineach' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in
route!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:inblock in dispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
block in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:incatch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:indispatch!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in
block in call!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:inblock in invoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in
catch' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:ininvoke' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in
call!' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/logger.rb:15:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:212:incall' /wallop/vendor/gems/ruby/2.3.0/gems/rack-1.6.4/lib/rack/head.rb:13:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:incall' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:in
call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:inblock in call' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:in
synchronize' /wallop/vendor/gems/ruby/2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:incall' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:86:in
block in pre_process' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:incatch' /wallop/vendor/gems/ruby/2.3.0/gems/thin-1.6.4/lib/thin/connection.rb:84:in
pre_process' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:incall' /wallop/vendor/gems/ruby/2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1076:in
block in spawn_threadpool' 172.17.0.1 - - [18/Sep/2016:08:56:33 +0000] "GET /channels?type=favorites HTTP/1.1" 500 30 0.0016