俺の日記帳 第三冊目 [転載禁止]©2ch.net
ffmpeg-3.0.0 が CentOS7.1 で動いた。
ふぅ。
さて、JS から ffmpeg を叩いて dash クライアントから再生できるか試験しないと… よっしゃ
MPEG Dash を使ったTVの視聴ツールのようなものが出来たような出来ないような。
ぐらい。なんか、dash の小さなファイルを読み替えるタイミングで、
再生が途切れてしまっている。
MP4 に出力するときに、closed caption として出力できていないんじゃないかなぁ。
そんな気がする。
とりあえず一歩進んだ漢字で大変満足。
何故か今回は音も出てるし。
ffmpeg の qsv のオプションを色々確認したうえで、
適切なストリームとなるように設定値を煮詰めていきましょう。 参考までに今の ffmpeg のコマンドライン
/usr/local/bin/recpt1 --device /dev/$1 --b25 --sid $3 $2 - -\
| ffmpeg -y -i - -vcodec h264_qsv -idr_interval 15 -profile:v main\
-look_ahead 1 -look_ahead_depth 100 -look_ahead_downsampling 2\
-acodec aac -ar 44100 -r 30 -g 15 -frag_duration 5000000\
-f flv rtmp://localhost/dash/$1 今の ffmpeg のコマンドライン
/usr/local/bin/recpt1 --device /dev/pt3video1 --b25 --sid 101 101 - -\
| ffmpeg -y -i - -q 10 -vcodec h264_qsv -vcm 0 -look_ahead 0 \
-pic_timing_sei 1 -single_sei_nal_unit 1 -recovery_point_sei 1 \
-idr_interval 15 -profile:v main -r 30 -g 15 \
-frag_duration 5000000 \
-acodec aac -ar 44100 -r 30 -g 15 -f mp4 ~/test.mp4
とりあえずこんな感じ。
q 指定した場合には、-vcm とか look_ahead とか同時利用は不可だと言っている。
-q 指定するには、look_ahead は無効にしておくんやで。 ffmpegのlive muxerなんだけど、webmだけだよーん。ってソースに書いてあるけど、H264+AACなストリーム食わせて、liveオプション付けとけばDash liveストリーミング動くんじゃね説。 チューナを搭載したLinuxマシンを、チューナデバイスとして外に公開するような何かがなんとなく出来そう。
現在の ffmpeg のコマンドライン
( /usr/local/bin/recpt1 --device /dev/$1 --b25 --sid $3 $2 - - |\
ffmpeg -y -i - -q 10 -vcodec h264_qsv -vcm 0 -look_ahead 0 \
-pic_timing_sei 1 -single_sei_nal_unit 1 -recovery_point_sei 1 \
-idr_interval 15 -profile:v main \
-r 30 -g 15 -frag_duration 5000000 \
-acodec aac -ar 44100 -r 30 -g 15 \
-f dash -live 1 ~/dash/data/$1.mpd )
Firefox Developer Edition で再生すると、全画面モードにしたら、
マニフェストファイルを更新しないみたいな具合悪い不具合があり。
現在のマニフェストファイルから使用していない chunk を削除する、daemon のようなものを作る。
とりあえず動いたからビール飲んで練るぜ MPEG Dash のマニフェストファイルの有無をAjaxでチェックして、
あった場合には Video タグを HTML に出して、
HTML5 でビデオ再生をするような何かを作った。
再生が出来たり出来なかったりするのはなんだろう?
なんか色々細かい(大量の)バグが仕込まれている気がする…
ffmpeg -f dash の出力するマニフェストの
再生開始可能となる条件がよく分からない。
マニフェストファイルが存在するだけではダメっぽい。
init-stream0.m4s も同時に存在すればOKなのであろうか。 わーい、うちの会社の技術責任者になりました。
といっても小さい&少人数な会社だけど、自分にとっては初の役職付き。
やった…俺やっとここまで来たんだ…
これからもガリゴリ仕事しつつ楽しまねば。
ここ1年ほど開発とは全く関係無い遊びに身を振ってたけど、良い感じで飽きたのでそろそろ趣味コード書こう。 最近個人でオラクルのRDSインスタンスを立ち上げてゴニョゴニョしてるけど、やっぱAWSって便利だなーとしみじみ実感。
オラクル環境って自分の中では仕事で作る事はあってもプライベートな開発では環境作ったりメンテする気が起きない筆頭なのに、
今やりたい事がオラクル環境を前提としたライブラリの修正とかいう矛盾した状況なので、こういう時にRDSはとてもありがたい。
ただRDSを開発用で使う場合はパケ死防止の為に一々インスタンスを捨てないといけないというソコソコ面倒くさい所があるので、
AWSのCLIを利用して省力化しないとやる気落ちそう。
スクリプト書く上で必要な機能やらメモ
・スクリプト叩いたらスナップショットからRDSのインスタンスを作成、セキュリティ設定を変更する
→インスタンス起動から設定変更出来るようになるまでの間が時間かかるはず。その事を前提でリトライ的に設定変更のコマンドを走らせればオッケーか?あるいはもっといい方法がCLIに準備されてる?
・逆にインスタンス捨てるコマンドも作る。出来れば捨てた事まで通知されるようにしたいけど、取り急ぎ今は自力で管理画面を見に行くでも良いや。 MPEG Dash の live のストリーミングの再生可能となる条件
1. マニフェストが存在する
2. init-stream0.m4s が存在する
3. chunk-stream0-00000.m4s が存在する
この状態で、<video>タグをHTMLにレンダリングして、
dash.js の初期化をかけると再生可能となる。
chunk-stream0.0000.m4s が作られるまで結構時間がかかる(10秒ぐらい)
コレを短縮させるために、chunk_duration_ms 1000 とか明示的に指定しているんだが、
やっぱり遅い。5秒ぐらいでチャンクファイルがローテーションしているように見える。 -min_seg_duration <int64> E....... minimum segment duration (in microseconds) (from 0 to INT_MAX) (default 5e+06)
このデフォルト値の5秒が有効になり続けている疑惑。
min_seg_duration 3000000 を明示してもその値にならない。
あと、dash.js が本当に再生を開始するのはセグメント3つキャッシュできたら。
ぐらいになってるので、再生開始(ffmpeg がエンコードはじめて)から20秒ぐらいかかる模様。 dash.js で動画再生する際にデインタレースの設定はどこで入れられるのだろうか。
dash.js 側にそのあたり操作するインタフェースありそうななさそうな。
まぁ普通デコーダ側に機能乗っけるよね。 dash.js のソースまるっともらってきて、
deint あたりで grep したけど引っかかるものがないという恐怖。
H264世代だからもういい加減デインタレースなんてないんやで。
という雰囲気を感じる。
Chromeで再生すると、それなりに綺麗だなぁ。
デインタレースされているように見える。
スマートフォンのChromeでも綺麗に再生できたし。
Firefox Developer Edition の実装上の問題か?
Edgeだとどうだろうね? デインタレースがうまく働かない件については、
ffmpeg の MPEG2 ビデオデコード後に -vf yadif 入れてお茶を濁す事にした。
qsv でエンコードはするので、yadif に多少CPU食われてもまぁいいか。という精神。
vpp 実装はロマン枠。
■今週の課題
epgdump の出した番組情報の json を地デジ・BSもキチンとパース出来る様にする
BS1 をエンコードしてる最中に ffmpeg が死ぬ病を治してあげること
利用しているソフトウェアのライセンスを精査
Firefox 以外のブラウザでアクセスしたときに、サーバサイド JS が死ぬ病を治す
やれるところからやっていきましょう。 ■今後の課題(メモっとかないと忘れそうなので)
1.サーバ → player 側に対する再生停止の命令の発行(websocket でやる。これは簡単そう)
2.サーバ → player 側に対する再生開始の命令の発行(websocket でやる。これは簡単そう)
3.player 画面に、番組表を差し込んで、そこから番組変更をするようなIF設計・実装(めんどくさそうな予感)
4.画面デザインの見てくれをもうちょっと何とかした方が…
→画面なんてなくても番組見られればいいやんけ。の精神で実装しないか。
1,2,3を実装することで、【チャンネル権】を持っている人が、
チャンネル変更をすることが出来るようになる実装になる。
まずは番組表から選択したものが再生できれば最低限いいから、
これは後からやりたいと思っています。
■検討事項
JSで .json の処理を実施して、結果(番組表)をHTMLに出力することをやりたい。
サーバ、端末のどちらで実装しても特に問題はないと思っている。
.json のファイルが結構大きいものになるので、
サーバサイドで動かして、無駄なデータの移動を少なくやった方がいいのかなと。
まぁまずはとりあえずモノが動くのが大事だね。
番組表表示がまだ出来ない…
検討事項と今後の課題はまったりいきましょう。 > ■今週の課題
> epgdump の出した番組情報の json を地デジ・BSもキチンとパース出来る様にする
出来た。 BSのストリーミングを行ったとき、
サーバサイドJS と ブラウザ側JSの websocket 通信(PING)が変だ。
サーバ(PING実施) → ブラウザ(PONG返答) という流れで通信している。
CSは普通に処理されているので、ロジックには問題がないと思っている。
サーバサイドが PONG が来ないからタイムアウトだと言っているんだが、
サーバサイドの JS のログを見る限り PONG は受け取っているようだ。
クライアント側は普通に応答返しているんだろうなぁ。
サーバサイドの微妙なロジック誤りか…
このあたりの実装は大分前にやったので、あんまり覚えていない…
コードも汚いし…orz... 地デジ, BS, CS のストリームをトランスコードしてリアルタイム視聴できるようになった。
ただ、色々弄ってしまったので、影響範囲を再確認してからコレでいいか確認しましょう。 とりあえず、なんとなく動くような何かが出来た気がする。
地デジ・BS・CSが各1局再生できたから満足。
少し冗長にログメッセージ出しているところを削って、
Videoプレイヤー側の調整をもう少しして0.01版が完成でいいかなぁ。
あぁでも chrome と edge で動作確認ぐらいしておこう…
たぶんうまく動かないからどこか対処しなければならない予感。
■今後対処しなければならないこと
・番組表に出力する放送局の選択をユーザ側で出来るようにする
・使用するチューナデバイスを選択できるようにする(.jsonでやる?)
・現状2ストリームの同時再生が出来ない(ffmpeg の dash muxer の出力命名規則の仕様)
・チャンネルの切り替え機能実装
・結局使わなかったJSライブラリの整理
こんなもんかな 対処項目追記
■今後対処しなければならないこと
・番組表に出力する放送局の選択をユーザ側で出来るようにする
・使用するチューナデバイスを選択できるようにする(.jsonでやる?)
・現状2ストリームの同時再生が出来ない(ffmpeg の dash muxer の出力命名規則の仕様)
・チャンネルの切り替え機能実装
・結局使わなかったJSライブラリの整理
・ffmpeg の音声選択が多分、複数音声構成の場合にマズイ。番組表.jsonに音声構成が入っているみたいなので、そっちから引き継いで何とかしましょう chrome と edge で試験してみたけど、特段変な事は無いな。
video player の挙動はちょっとブラウザ依存みたいなので、
もう少し余裕のあるように video のストリーム開始条件にしたほうが良さそう。 DASHの記載がウンコなので頭に来たから晒しage
「MPEG-DASHは、ファイルの分割を許しません。」
何平然と嘘ぶっこいとるんや。
チャンクで小さいファイル沢山に分割できるやんけ。
ttps://tech.jstream.jp/blog/cdn/streaming_cdn/
HLS等では、サーバ上に細切れにしたTSファイルを配置し、
クライアントは、視聴する部分のTSファイルを順番に取得します。
一方、MPEG-DASHは、ファイルの分割を許しません。
つまり、サーバ上に配置するのは一つの(フルサイズの)動画ファイルです(正確には音声と映像の2種類必要)。
そして、MPEG-DASHクライアントは、この一つの動画ファイルから視聴に必要な部分を
HTTPで順番に取得します。 バックグラウンドで森の環境音流すようになったらなんかコーディングがやけに早くなった気がする /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ:::::::::::// ヽ:::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/ ヽ::::::::|
ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙ ノ:::/ ,,;;;;;;,, ,,,,ヽ:::::l
):::::::::::::::::::::::::::::::::::::::::::::::/ ノ/ __,'''i: ('''__):::l
)::::::::::::::::::::::::::::::::::::::::::::::::::/  ̄ ̄ン:. :「 ̄`ヾ
1:::::::::::::::::::::::「 `┤l:::::::::::::::::l  ̄ , ヽ ̄ l
`l:::::::::::::::::::::ヽ :l li:::::::::::::/ /´ `l | <ヴッ!!!
ヽ::::::::::::::::::::::\_」 lヽ::::/ !:-●,__ ノ /
ノ:::::::::::::::::::::::::::ノ | l `゙゙ ,,;;;;;;;;;;;;;;;;;;;;, /ヽ
,/ ヽ::::::::::::::::::::::( l l::::::::.. /.:''/´ ̄_ソ / `ヽ
ヽ:::::::::::::::ヽ | l:::::::::::... /::// ̄ ̄_ソ / \
ヽ:::::::\| l::::::::::::::::... / :::.ゝ` ̄ ̄/ / ヽ
ヽ:::l l:::::::::::::::::::..  ̄ ̄;;'' / ヽ
l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ l
l l '''''''''''''''''''''''''''''''''''''' ̄l | |
https://www.youtube.com/watch?v=nWH7y4zoZSk elementary osでwindow listとかウインドウの一覧とか呼ばれるものがなくて不便に感じてたけど、tint2で解決した。いえーい。ちょいとバグがあるようだけど、まあ、たいしたものじゃない Linux神からメールが届いた
だいたい10年後に僕が革新的なOSを作るから是非Linuxを組み込んで欲しいと懇願されたがおぱいが彼女より小さかったので断った
gedit 3.10.4
文字化けするか? テスト
_ _ _
Ubuntu GNOME 14.04.5 Trusty Tahr
_ _ _
$ sudo apt-get update
… … …
パッケージリストを読み込んでいます... 完了
W: Duplicate sources.list entry http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ trusty-proposed/restricted amd64 Packages
(/var/lib/apt/lists/ftp.jaist.ac.jp_pub_Linux_ubuntu_dists_trusty-proposed_restricted_binary-amd64_Packages)
W: Duplicate sources.list entry http://ftp.jaist.ac.jp/pub/Linux/ubuntu/ trusty-proposed/restricted i386 Packages
(/var/lib/apt/lists/ftp.jaist.ac.jp_pub_Linux_ubuntu_dists_trusty-proposed_restricted_binary-i386_Packages)
W: これらの問題を解決するためには
apt-get update を実行する必要があるかもしれません
mirror://mirrors.ubuntu.com/mirrors.txt
_ _ _
$ sudo apt-get update
… … …
パッケージリストを読み込んでいます... 完了
_ _ _
ミラ・ジェーン・ストラウスにしたらなおった?
http://nizigen-matome.com/wp/wp-content/uploads/2014/05/2014_05_21_314_016.jpg 2015年中にある程度落ち着くはずの仕事がようやく落ち着いて来た(完了したとは言ってない
昨年は暇な時は遊んで忙しくなったら一気に忙しくなって大変だったので、今の内にやりたい事をやっておこう。
・[直近]AWSを扱う機会が増えたので、手持ちのお遊び用サクラVPSを解約してAWSに移行したい
・[長期]統計を扱えるようになりたい。
取り敢えず統計の入門書とpythonで数学弄ってる本何冊か買ってきた。
まずはJupyter notebookってのを入れれば良いらしい。 xubuntu16.04でEPSONのプリンタドライバが入らない問題について。
この辺を参考にしてlsbを入れた
http://askubuntu.com/questions/767012/epson-printer-with-ubuntu-16-04
1.Add ubuntu trusty repository to your source list in "software and updates"
「deb http://archive.ubuntu.com/ubuntu/ trusty main」
2.$sudo apt-get update
3.$sudo apt-get install lsb-core lsb
4.Remove or deactivate the trusty repository
5.sudo apt-get update
6.Install your printer driver .deb via your favorite way
でも動かない(プリンタが見えない) ffmpeg関連が書いてあったのでわかれば教えてください
VP9が圧縮と画像の品質が良いときいたので利用しようと
$ ffmpeg -i WhereTheLightGetsIn.mp4 -vcodec libvpx-vp9 -b 2500k -acodec copy -f webm WhereTheLightGetsInVP9.mp4
こんな感じでエンコ。画質は確かに良いです! が、問題はシークが上手く行かないのです。
smplayerでもVLCでも再生初めてシークバーで見たいシーンまで移動しようとすると凄い時間がかかったり
うんともすんとも言わない状態になったりします・・
ググっても英語の情報しか出てこなくて、ffmpegでもVP9エンコはあまりよくないのでしょうか? ちなみに自分のffmpegは本家サイトに書いてあったレポジトリを追加して入れたやつです
$ ffmpeg
ffmpeg version N-80026-g936751b Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3
--enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls
--enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth
--enable-libsoxr --enable-libxvid --enable-libvidstab
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 42.100 / 57. 42.100
libavformat 57. 36.100 / 57. 36.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 45.100 / 6. 45.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... なんでVP9にこだわるのかわからないがH265かH264の2passあたりでいいんじゃないか 今日、鈴木の格安パソコンライフBBS でYohooのキャッシュで検索で
http://cache.yahoofs.jp/search/cache?c=QMbm7ZivO2oJ&p=%E9%88%B4%E6%9C%A8%E3%81%AE%E6%A0%BC%E5%AE%89%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%95BBS&u=https%3A%2F%2Fforums.ubuntulinux.jp%2Fviewtopic.php%3Fpid%3D112872
がヒットして見てみたが
https://forums.ubuntulinux.jp/viewtopic.php?id=18518
では2個完全削除で
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。は1個のみ表示で
1984を連想した。 1984とか関係なくて、単に【Ubuntu日本語フォーラム 利用規約】に照らしての行動だろ。
https://forums.ubuntulinux.jp/tos.php 【初心者フォーラム 追加規約】
ダメだ、これは。救いが無い。 これは、以前初心者が連投するので、連投を規制しようかと管理人がカキコでしたが
180度、変えたのかな? bomiの*ubuntu16.04用のパッケージを見つけた
https://github.com/xylosper/bomi/issues/470
元々の作者は院生で秋から米大学に行くようだ xubuntu16.04でepsonのプリンタpx-045aの印刷が出来た 久しぶりにMPEG2 TSを読んだ。
NITからリモコンIDとTS名の取り出し方を理解した。
チャンネルスキャナ実装に一歩近づいた。 TSを解析して、NITからリモコンキーIDとts_nameを取れる何かが出来た。
地上波全チャンネルprobeするのに5分ぐらい。
ARIBは全部読み込めてないので、解析出来るのはNHK縛り付き。 解析できないNITはTSパケット長より長いもののようなので、TSパーサを書き始めてしまっている。
うーん。libavformatでバシッと取ってくる方が手っ取り早い気もする。
まぁ趣味だしいいか。 /dev/sr0がdvdドライブだと思うが、一応/dev/dvdも作っておく
# ln -s /dev/sr0 /dev/dvd
$ growisofs -Z /dev/dvd=/path/to/iso
or
$ growisofs --dvd-compat -Z /dev/dvd=/path/to/iso (BDレコーダーと黒FMVのMPC-HCで再生できなかった。SOTEC-elementaryのSMPlayerなら再生できた) >>102
なんとなく出来たような出来てないような。イマイチ自信がない。
地方の放送局のNITパースさせると失敗するのはなんでだろう。
NITの長さは1021だよって書いてあったと思ってるんだけど、例外を踏んでいるらしい。
よくわからん。 最近の悩み
複数の放送波が送信されるものが受信できる状況において、どの物理チャンネルをリモコンIDにマッピングさせるか、実装方式の検討が必要。
なんにも考えないで電波の強いところが勝つでいい気がするけど、リモコンの3chが3つ入るのを全て管理したいとも思う今日この頃。
テレ玉
TVK
千葉テレビ
が3chやね。
関西の事情は知らん。 地デジ専用のチャンネルスキャナのような何かが出来た。
NITパースしてリモコンID引っ張ってくるだけのものだけど。
リモコンIDの管理をやっているのは地デジだけなので、
とりあえず完成ということにしまって良いかな。
■残課題
地デジ以外は動かんよ。っていう処理を入れたほうがbetter(入れなくてもいいけど)
→NITに地デジか否かが入っているのでやろうと思えばやれる
リモコンIDが重複したときに、どちらの物理チャンネルを使うのがお勧めか判別する情報を付与したい
→チューナの受信レベルを入れる
ts_name(放送局名のようなフィールド)のエンコードが地デジの場合には
JISらしいので、そのあたりをUTF8に変換する泥臭いコードも追加する。
このあたり含めて実装してあげれば、
とりあえずチャンネルスキャナとして実用的になると思う。 チャンネルスキャナの様な何かなんとなく出来た。
ARIB文字からUTF8への変換は考えるの面倒くさくなったので、epgdumpのaribtostrを丸ごとコピーしてきた。
信号強度の比較は面倒くさくなったので、recpt1のcalc_crでdoubleの値をreturnするように改造した。
リモコンキーIDと信号強度を出して、sort -nで昇順に並べて後勝ちのロジックにして、強い物理チャンネルを選択する事にした。
同一リモコンキーIDで、地域毎の放送局(TVK、千葉テレビ、テレ玉)を別のものとして管理できるようになった。
NHK関東と前橋とかの区別はまだ出来てないけど、弊害無いし良いかなぁとも思っている。
動かしているとたまにsegvで死ぬのはご愛嬌。 iphoneとのUSB通信をできるようにした
画像ファイルをコピーしてもiphoneの写真ディレクトリから見えない…
vlcのフォルダに曲をコピーした場合はいける
clementineを使えればなあ
画像はクラウドからエクスポートすればiphoneから見えるようになる
ストレージの書き込み寿命が決まっているので曲もクラウドに置いた方がいいかも
dropbox自体のメモリ消費が結構エグいけど Clementineで実験
クラウドストレージのファイルを再生する
Dropbox
mp3,flac再生可能
Google Drive
mp3再生不可
flac再生可能 クラウドって回線プロトコルhttpでしょ?
あれ不安定でトロいから音楽動画にゃ使わん方が良いよ >>109の続き
Clementineで実験
クラウドストレージのファイルを再生する
Dropbox
mp3,flac再生可能
同期不可能(ライブラリにずっと残る)
Google Drive
mp3再生不可
flac再生可能
同期不能(削除するとライブラリから消える) nvidiaのドライバをアップデートしたらbomi(mpv)が動かなくなった ビデオドライバをX.Orgに戻し、再生ソフト側でvdpau以外を
(gl、既定、xv等)指定し再起動(若しくはソフトを再起動)
bomiは自動でハードウエアアクセレレーションがOFFに 遅々として進んでいるテレビリアルタイムストリーミング視聴システム開発プロジェクトの進展。
今日はチャンネル変更を行うために必要な機能の検討を行った。
■チャンネルの切り替え機能
これを実装するために実装が必要な機能
サーバ → player 側に再生停止の命令の発行
サーバ → player 側に再生開始の命令の発行
とりあえずこのあたりのplayer側の実装を検討する。
→サーバ側はそんなに難しくないから後送り。
サーバとplayerの通信はwebsocketが作ってあるので、これでやる。
再生停止命令
→サーバから[stop]命令を受ける
→dash.js の停止処理を行う
player.pause
再生開始命令
→サーバから[start]命令を受ける
→dash.js の再生処理を行う
player.initialize
player.play
ここで必要であれば、ソースのURLの指定だったり、
バッファリングの調整だったりを仕込んだりするんだと思われる。
こんな感じでとりあえず良いんじゃないかなぁ。
明日から軽くソース弄って確認してみよう。
今日の検討はここまで。 Linuxだと怪しいサイトにアクセスしても安心
…とも言えないので、最近は仮想Linuxでアクセスするようにした あけましておめでとう > 俺
今年はもう1台Linux専用機を増やす あけましておめでとう > 皆
今年はpostgreSQLでクラスタリングを行う https://ameblo.jp/kamome325/entry-11656576009.html
http://ameblo.jp/kamome325/entry-11736460682.html#r09
smplayerのCPU負荷が高いので、リポジトリから入れなおした
http://www.smplayer.info/ja/downloads
sudo add-apt-repository ppa:rvm/smplayer
sudo apt-get update
sudo apt-get install smplayer smplayer-themes smplayer-skins
(Qt 4 でビルドされたパッケージです) シークするとチカチカするのでsmplayerは元に戻した
thunar -b というコマンドを覚えた bomi(mpvのGUI)のdebパッケージなど
*ubuntu 16.10用
http://fedoralinux.or.kr/board-read.do?boardId=bbs5&boardNo=147670362552923&command=READ&page=1&categoryId=-1 yocto の do_fetch で git clone でurl 無いよで落ちるときの対処
1. git clone で DL_DIR/git2 にダウンロード
2. git checkout で .bb ファイル指定のリビジョンにチェックアウト
3. git であわせたファイルを
bareに変換
4. hogehoge.done をタッチして作る
これでイケる感じなんだけど、SRCが複数のがうまく行かなくて泣きそう yocto のビルドがうまくいかなかった件、無理やり解決。
proxy 経由での git cloneがうまくいかない。
コマンドラインから git が使えるように設定はしているのだけどなぁ。
#というか複数SRC git の do_fetch の挙動が良く分からない
#socks proxy を立てて socat とうまい具合に連携するともしかすると動くのかも?
解決手段はproxyを使用しない。
IPv4で直接 git 参照できるようにしたこと。
力技だね。
yocto のビルドスクリプトは複雑怪奇でよく分からん。
黒魔術だろあれは。 明日以降のやること
1. yocto のビルドの完了確認
2. ビルドした yocto で起動確認
3. yocto をSSDにインストール
4. 3.で構築したSSDから起動確認
5. yocto の中に Intel のバイナリブロブをぶっこむ
6. Intel MediaSDK をインストールしてビルド環境を構築する
こんなもんだろうなぁ。
うーん。atom マシン欲しいなぁ。
というか、USBなチューナデバイスのドライバ整備もしないといかんし。。。 ビルドした yocto は動くというか動かんというか。それ以前であった。
使ったのはIntel MediaSDK 対応な2017 MR3
ダメなところ
installerの中で grub-install を叩いているのだが、grub-probeがsegmentation fault で死ぬ。
対処法
hddimg なイメージつかって起動させて、grub最新版をビルド。で、ビルドしたgrubでgrub-install直接叩いて対処
これ全くリリース試験してない奴やん。Intelさん。マニュアルPDFもダメダメ出し
UFOドライバとMediaSDK入れたら取り敢えず完成かな。 ターゲットから起動した yocto に、
マニュアルの指示を好意的に解釈して
vaapi の指定リビジョンで /usr 上書きインストール
バイナリrpm(ufo)のインストール
Media SDKのインストール
環境変数設定をする
とやった上で、libmfx を入れて
ffmpeg ビルドしたら、qsv_hevc 対応バイナリが出来た。
これはもうAtomマシン買っていい流れじゃん というわけで、ターゲットマシン(Apollo Lake)が入手できたので、yocto インストール。
うん。予想通り。MMC にはインストール失敗するね。
んで、initrd に USB のモジュール入ってないから USB のSSDにインストールしても無事起動失敗
うん。いいねこれ。
M2 のSSD購入しないと起動できない流れだな。
まぁスクリプトガリガリ書き換えてやればいいんだけど、カッタルイ。
金で解決が早いパターン。 M-DISC(https://ja.wikipedia.org/wiki/M-DISC ) という、読み込みはDVD-R, BDとして使えるけど
1000年もデータを保持するメディアを先ほど知った。
対応ドライブが必要だそうだが、IO DATAが手頃な値段で出している。
EX-BD03K Blu-ray ドライブ \7,980 https://www.amazon.co.jp/dp/B017D7H0FK
EX-DVD04W DVDドライブ \2,743 https://www.amazon.co.jp/dp/B01FQ9WKQQ
メディア価格も許容範囲(BDで \30/GBくらい)だ。
このドライブ、Linuxでも使えるだろうか。
こんど試してみたい Apollo Lake マシンにSSDを取り付け、yocto をインストールした。
インストールは全く躓く箇所は無し。
Apollo Lake から yocto が起動したら、
Intel Media SDK のインストールマニュアルどおりに(記載誤りは多いが)
インストールして、libmfx をインストールして、
ffmpeg をビルドすることで、QSV対応のバイナリが出来た。
HEVCでも動くけど、地上デジタルでもリアルタイムトランスコードは無理なレベル。
もしかすると、decodeもQSVでやったら間に合う可能性は存在するかもしれないが。
#ffmpeg の QSV でトランスコードをする場合、Iフレームで開始していないと落ちるんだそうだ
というわけで、OS周りの設定が終わり、QSVが atom で利用可能となった。
次は W3U4 の解析。
ドライバ(の様なもの)をダウンロードして、ビルド。
ビルドの際に KERNEL_SOURCE/scripts/recordmount を使用するので、
KERNEL_SOURCE ディレクトリで make scripts を打っておく事。
it930x_driver_native/src/it930x-core.c
以下のコードを追加。
struct usb_device_id IT930x_usb_id_table[]
{USB_DEVICE(0x0511, 0x083F)}, //W3U4
これで modprobe すると謎の char dev が見られて、
テスト用コマンドで触ることが出来るようになる。
■今後の課題■
it930x_driver_native/src/DIB9090-drv.c, Si2168B-drv.c をザックリと読んでいる。
tc90522.c を斜め読みしつつ、どう書き換えれば何とか動くか検討中。 ここは俺の日記帳なので批判は当たらない
関係ないことは書くな ラズパイにFedora-LXQT-26入れた。
英語版しか無かったが、キーマップとロケールを変更して
日本語化できた。
JDも無事にビルド出来て、満足した朝を迎え
今出勤前に、ラズパイからここに書き込み。♪ 今日はラズパイにubuntu-MATEを入れた。
firefoxがクラッシュしてるのは残念。
chromiumを入れて対応。midoriも動くんだな。
Fedoraに比べると、やっぱり楽だな。 midoriは軽量が売りなんだから動くだろ
Xfceパーティーだけど 今日はラズパイでFedora-KDEとFedora-xfceを走らせようとしたが失敗した。
KDEはログインできなかった??汗
xfceは途中で固まる。汗
俺の腕では無理だったようだ。
やっぱりラズパイLinuxはdebianとubuntuが無難だ。
が今日の結論。
FedoraのSDは消去した。 レズビアンってすげーな無償配布されてるのかよ
2人受け取ってくるわ >>143
ラズビアンは優秀だよね。
これも気に入ってる。
マイクロSDで切り替えられるから便利だよね。 SDカードからブートするPCを作りたい。
カードリーダーからSDカードってブートできるのだろうか?
部品注文したので、今日実験機PCを組んでみる。 部品届いた。組み上げたけど動かない。
CPUかマザーがダメみたい。
サポートにメールしたので、交換してもらう。
残念・・。 ラズパイみたいにSDカードにOS入れて、切り替えて遊べるx86_64マシン作った。
Linuxってカードリーダからもブート出来るな。
俺の理想のマシンが出来た。
SDカードに好きなだけLinux入れられる。 lxdeはgtk3化するの?
lxqtはどうなるの? Windows8.1とのデュアルブートに失敗。
Linuxとの切り替えは、HDの線を入れ替える。
LinuxとWinのHDを同時に繋がない。
シンプルに行こう。 >>152
ソレがいい
いまのWindowsはトボケてLinux壊すかも知れん
Win7だって安心できない
物理的にWindowsからLinuxパーティションは切ったほうがいい EFI分けてBIOSで選ぶようにするだけですがな
同じブートローダーを使おうとしたら死ぬ Windowsはつい最近、物理的につながっているLinuxパーティションを
勝手に無効ドライブ(?)にした。
今のMSはそういう方針だということだから物理的に分けるしか無い。
外付けHDDのLinuxパーティションも危ない