Переключения порта xbox’а (что бы в live не ломился):
1
2
3
4
5
6
7
8
9
10
| #!/bin/sh
if [ "`snmpget -v 1 -c public des IF-MIB::ifAdminStatus.12 | grep up`" ]
then
echo "disabling port 12.."
snmpset -v 1 -c private des IF-MIB::ifAdminStatus.12 i 2 > /dev/null
else
echo "enabling port 12.."
snmpset -v 1 -c private des IF-MIB::ifAdminStatus.12 i 1 > /dev/null
fi |
Задача: использовать xbox 360 для просмотра HDTV с сервера.
Проблема: почти все HDTV видео выкладывают в формате h.264, звук в формате aac 6-ch и все это в контейнере mkv. Xbox 360 в свою очередь умеет читать видео h.264, aac 2-ch и контейнер mp4.
Нам понадобится:
- mpeg4ip для mp4created
- ffmpeg с поддержкой faac, для перекодирования 6-и канального звука в 2-х канальный
- mkvtoolnix для выдирания из mkv аудио и видео дорожек
Используя mkvinfo узнаем нужные нам дорожки и битрейт видео.
Далее:
1
2
3
4
5
6
| mkvextract tracks input.mkv 1:video.h264 2:audio.ac3
mp4creator -create=video.h264 -rate=29.970 output.mp4
mp4creator -hint=1 output.mp4
ffmpeg -y -i audio.ac3 -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
mp4creator -c audio.aac -interleave -optimize output.mp4
rm audio.aac audio.ac3 video.mp4 |
Так же читаем по следующим ссылкам:
- http://oddmanout.wordpress.com/2008/01/26/converting-an-mkv-h264-file-to-ps3-mp4-without-re-encoding-on-mac-os-x/
- http://torrents.ru/forum/viewtopic.php?t=632076
Небольшой shell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| #!/bin/sh
if ! [ -f "$1" ]
then
echo "usage: $0 filename"
exit
fi
vt=1
at=2
fps=23.976
fps=29.970
audio=ac3
filename=$1
size=`stat "$filename" | awk '{print $8}'`
if [ 4314967296 -lt "$size" ]
then
mkvmerge -o "`echo $filename|sed -e 's/mkv/Part.mkv/'`" --split 4G "$filename"
mask="`echo $filename|sed -e 's/mkv/Part-*.mkv/'`"
files=`ls $mask`
else
files=$filename
fi
for i in $files
do
mkvextract tracks "$i" $vt:video.h264 $at:audio.$audio
mp4creator -create=video.h264 -rate=$fps output.mp4
mp4creator -hint=1 output.mp4
if [ "$audio" = "dts" ]
then
mplayer -vo null -ao pcm audio.dts
ffmpeg -y -i audiodump.wav -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
rm audiodump.wav
else
ffmpeg -y -i audio.ac3 -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
fi
mp4creator -c audio.aac -interleave -optimize output.mp4
rm audio.aac audio.$audio video.h264
outfile=`echo $i|sed -e 's/mkv/mp4/'`
mv output.mp4 "$outfile"
mp4creator -list $outfile
done |
Т.к. xbox не поддерживает профиль кодирования h264 выше чем 4.1 – приходится его менять. Пока что делается так:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| #!/bin/sh
if ! [ -f "$1" ]
then
echo "usage: $0 filename"
exit
fi
vt=`mp4creator --list $1|grep video|awk '{print $1}'`
at=`mp4creator --list $1|grep audio|awk '{print $1}'`
fps=`mp4creator --list $1|grep video|awk '{print $11}'`
mp4creator --extract=$vt $1
mv $1.t$vt video.h264
mp4creator --extract=$at $1
mv $1.t$at audio.aac
echo -n "demuxed? [yes/no]: "
while read x
do
if [ "$x" = "yes" ]
then
break
else
echo -n "demuxed? [yes/no]: "
fi
done
mp4creator -create=video.h264 -rate=$fps output.mp4
mp4creator -hint=1 output.mp4
mp4creator -c audio.aac -interleave -optimize output.mp4
mv output.mp4 $1
rm audio.aac video.h264 |
Как только спрашивает demuxed – в hex-редакторе (например bpatch) открываем video.h264 и меняем 8-й байт с 33 на 29.
Тут купил консоль – gamebest.ru. Прошитая, с улучшенным охлаждением, хард на 20 гиг, белая, беспроводной джостик.
VGA кабель на digitalshop.ru
Качаем игры с game-torrent.info и xbox-sky.cc.
Всем доволен. )
Собственно subj. Устанавливаем его через svn с поддержкой всего и побольше. Конфиги fuppes.cfg и vfolder.cfg ложим в /root/.fuppes/
Для запуска я использую следующий sh:
mdconfig -a -t vnode -f /mnt/share/jails/images/two.image -u 0
mount /dev/md0c /mnt/share/jails/two/
mount_nullfs /mnt/share/case/ /mnt/share/jails/two/mnt/share/
chroot /mnt/share/jails/two /root/fuppes/trunk/src/fuppes
umount /mnt/share/jails/two/mnt/share
umount /mnt/share/jails/two/
mdconfig -d -u 0
При первоначальном запуске или после каждого изменения на файловой системе – необходимо нажимать в fuppes: “r”, а потом “v”.