Re: Hulu (US only)
Posted: Fri Jan 13, 2012 12:47 pm
I have not had time to do any troubleshooting on my machine at home. Hope to be able to troubleshoot sometime this weekend.
v2.4
Aside from various minor bugfixes since 2.3, RTMPE type 9 handshakes are now supported.
Version bump
Additional credit for RTMPE 9 keys
Add LIB_RTMP macro
Add RTMPE type 9 handshake signature
Revert "Drop back on the handshake version, avoid rtmpe 9"
Yes, you need 2.4 or get the source from Serviio's download page.
erik wrote:Yes, you need 2.4 or get the source from Serviio's download page.
This solved it for me, Thanks!
moltra wrote:erik wrote:Yes, you need 2.4 or get the source from Serviio's download page.
This solved it for me, Thanks!
How did you get it to update? I have tried 3 times and still get the handshake error.
cd ~/src
git clone --depth 1 git://git.videolan.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
--enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 \
--enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-libvpx \
--enable-librtmp --enable-libxvid
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
2012-01-22 15:55:03,566 WARN [FeedUpdaterThread] An error occured while scanning for online item information, will continue
java.io.IOException: Cannot parse resource from http://www.hulu.com/greys-anatomy. Message: Error during feed parsing : Invalid XML: Error on line 310: The entity name must immediately follow the '&' in the entity reference.
at org.serviio.library.online.OnlineLibraryManager.findResource(OnlineLibraryManager.java:177)
at org.serviio.library.online.OnlineLibraryManager.findResourceInCacheOrParse(OnlineLibraryManager.java:184)
at org.serviio.library.online.metadata.FeedUpdaterThread.getOnlineItems(FeedUpdaterThread.java:158)
at org.serviio.library.online.metadata.FeedUpdaterThread.run(FeedUpdaterThread.java:95)
2012-01-22 17:55:00,320 WARN [FeedUpdaterThread] Failed to retrieve online item information for rtmpe://cp39466.edgefcs.net/ondemand?auth=daEbvbrd7aActbNbIbvdjdRdEdodxdmaxb4-bphjpc-c0-XoMEACt0Jyv&aifp=sll02152008&slist=hulu12/186/50145186;.international=false&hgt=OZU7Pvs7j27-nhteNno7wvVyYGoB-577FaYM6kLfmOS13Egksgn-hSVijwfh6UAu8dilvKWE29KoYqPS4SKGC8XzJ_GzQ5WjnDI41KxqZRNIqDYLBFS2yFRiv8Ocn0RGSY6mncfvQuPMJm8I5pCwT-3soGFMVMpwBAxHpI7gdmyYFt11q-5VK1CCIIdLXYOFaJfuokTWi8UDWXAbrWolsPm00_0MtdPLiAhntMJ-6KWVrSSWfG3LgtWt3OKskTti&hgt_ver=331370278 app=ondemand?auth=daEbvbrd7aActbNbIbvdjdRdEdodxdmaxb4-bphjpc-c0-XoMEACt0Jyv&aifp=sll02152008&slist=hulu12/186/50145186;.international=false&hgt=OZU7Pvs7j27-nhteNno7wvVyYGoB-577FaYM6kLfmOS13Egksgn-hSVijwfh6UAu8dilvKWE29KoYqPS4SKGC8XzJ_GzQ5WjnDI41KxqZRNIqDYLBFS2yFRiv8Ocn0RGSY6mncfvQuPMJm8I5pCwT-3soGFMVMpwBAxHpI7gdmyYFt11q-5VK1CCIIdLXYOFaJfuokTWi8UDWXAbrWolsPm00_0MtdPLiAhntMJ-6KWVrSSWfG3LgtWt3OKskTti&hgt_ver=331370278 playpath=mp4:hulu12/186/50145186/agave50145186_5121638_H264_650.mp4 swfUrl=http://www.hulu.com/player.swf swfVfy=1. It might not play.
java.io.IOException: org.serviio.library.local.metadata.extractor.InvalidMediaFormatException: Unknown video file type.
at org.serviio.library.online.metadata.FeedUpdaterThread.retrieveAVMetadata(FeedUpdaterThread.java:273)
at org.serviio.library.online.metadata.FeedUpdaterThread.retrieveTechnicalMetadata(FeedUpdaterThread.java:208)
at org.serviio.library.online.metadata.FeedUpdaterThread.run(FeedUpdaterThread.java:101)
Caused by: org.serviio.library.local.metadata.extractor.InvalidMediaFormatException: Unknown video file type.
at org.serviio.library.metadata.FFmpegMetadataRetriever.validateCodecsFound(FFmpegMetadataRetriever.java:344)
at org.serviio.library.metadata.FFmpegMetadataRetriever.retrieveMetadata(FFmpegMetadataRetriever.java:87)
at org.serviio.library.online.metadata.FeedUpdaterThread.retrieveAVMetadata(FeedUpdaterThread.java:255)
... 2 more
mark@SMServer:~$ ffmpeg -i "rtmpe://cp39466.edgefcs.net/ondemand?auth=daEbvbrd7aActbNbIbvdjdRdEdodxdmaxb4-bphjpc-c0-XoMEACt0Jyv&aifp=sll02152008&slist=hulu12/186/50145186;.international=false&hgt=OZU7Pvs7j27-nhteNno7wvVyYGoB-577FaYM6kLfmOS13Egksgn-hSVijwfh6UAu8dilvKWE29KoYqPS4SKGC8XzJ_GzQ5WjnDI41KxqZRNIqDYLBFS2yFRiv8Ocn0RGSY6mncfvQuPMJm8I5pCwT-3soGFMVMpwBAxHpI7gdmyYFt11q-5VK1CCIIdLXYOFaJfuokTWi8UDWXAbrWolsPm00_0MtdPLiAhntMJ-6KWVrSSWfG3LgtWt3OKskTti&hgt_ver=331370278 app=ondemand?auth=daEbvbrd7aActbNbIbvdjdRdEdodxdmaxb4-bphjpc-c0-XoMEACt0Jyv&aifp=sll02152008&slist=hulu12/186/50145186;.international=false&hgt=OZU7Pvs7j27-nhteNno7wvVyYGoB-577FaYM6kLfmOS13Egksgn-hSVijwfh6UAu8dilvKWE29KoYqPS4SKGC8XzJ_GzQ5WjnDI41KxqZRNIqDYLBFS2yFRiv8Ocn0RGSY6mncfvQuPMJm8I5pCwT-3soGFMVMpwBAxHpI7gdmyYFt11q-5VK1CCIIdLXYOFaJfuokTWi8UDWXAbrWolsPm00_0MtdPLiAhntMJ-6KWVrSSWfG3LgtWt3OKskTti&hgt_ver=331370278 playpath=mp4:hulu12/186/50145186/agave50145186_5121638_H264_650.mp4"
ffmpeg version git-2012-01-18-e191f1f Copyright (c) 2000-2012 the FFmpeg developers
built on Jan 17 2012 23:13:59 with gcc 4.6.1
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-libvpx --enable-librtmp --enable-libxvid
libavutil 51. 34.101 / 51. 34.101
libavcodec 53. 57.100 / 53. 57.100
libavformat 53. 30.100 / 53. 30.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 59.101 / 2. 59.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 51. 2.100 / 51. 2.100
HandShake: Type mismatch: client sent 6, server answered 9
HandShake: Server not genuine Adobe!
git clone git://git.ffmpeg.org/rtmpdump
cd rtmpdump
make
sudo make install
But the resulting binary still failed with this error message:
WARNING: HandShake: Type mismatch: client sent 6, server answered 9
WARNING: HandShake: Server not genuine Adobe!
ERROR: RTMP_Connect1, handshake failed.
After a bit of digging it turned out that my new rtmpdump used the old dynamic library. I had to set the rpath of the new binary, so that it used the new version of the library. There are several ways to do this; I choose to recompile with:
make clean
make XLDFLAGS='-Xlinker -rpath -Xlinker /usr/local/lib'
sudo make instal