俺の日記帳 第三冊目 [転載禁止]©2ch.net (978レス)
上下前次1-新
59: 2016/04/17(日)03:14 ID:kT7WQmhK(2/2) AAS
参考までに今の 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
60: 2016/04/18(月)23:19 ID:5diPqO0s(1) AAS
今の 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 は無効にしておくんやで。
61: 2016/04/19(火)20:34 ID:Vd+wylde(1) AAS
ffmpegのlive muxerなんだけど、webmだけだよーん。ってソースに書いてあるけど、H264+AACなストリーム食わせて、liveオプション付けとけばDash liveストリーミング動くんじゃね説。
62: 2016/04/19(火)23:40 ID:+WlV+rGL(1) AAS
チューナを搭載した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 で再生すると、全画面モードにしたら、
省3
63: 2016/04/24(日)14:58 ID:6jf9XrO6(1) AAS
MPEG Dash のマニフェストファイルの有無をAjaxでチェックして、
あった場合には Video タグを HTML に出して、
HTML5 でビデオ再生をするような何かを作った。
再生が出来たり出来なかったりするのはなんだろう?
なんか色々細かい(大量の)バグが仕込まれている気がする…
ffmpeg -f dash の出力するマニフェストの
再生開始可能となる条件がよく分からない。
マニフェストファイルが存在するだけではダメっぽい。
init-stream0.m4s も同時に存在すればOKなのであろうか。
64(2): カミナリ桃 ◆hzkudVaLnM 2016/04/26(火)00:29 ID:ZpL8oM70(1/2) AAS
わーい、うちの会社の技術責任者になりました。
といっても小さい&少人数な会社だけど、自分にとっては初の役職付き。
やった…俺やっとここまで来たんだ…
これからもガリゴリ仕事しつつ楽しまねば。
ここ1年ほど開発とは全く関係無い遊びに身を振ってたけど、良い感じで飽きたのでそろそろ趣味コード書こう。
65: カミナリ桃 ◆hzkudVaLnM 2016/04/26(火)00:39 ID:ZpL8oM70(2/2) AAS
最近個人でオラクルのRDSインスタンスを立ち上げてゴニョゴニョしてるけど、やっぱAWSって便利だなーとしみじみ実感。
オラクル環境って自分の中では仕事で作る事はあってもプライベートな開発では環境作ったりメンテする気が起きない筆頭なのに、
今やりたい事がオラクル環境を前提としたライブラリの修正とかいう矛盾した状況なので、こういう時にRDSはとてもありがたい。
ただRDSを開発用で使う場合はパケ死防止の為に一々インスタンスを捨てないといけないというソコソコ面倒くさい所があるので、
AWSのCLIを利用して省力化しないとやる気落ちそう。
スクリプト書く上で必要な機能やらメモ
・スクリプト叩いたらスナップショットからRDSのインスタンスを作成、セキュリティ設定を変更する
→インスタンス起動から設定変更出来るようになるまでの間が時間かかるはず。その事を前提でリトライ的に設定変更のコマンドを走らせればオッケーか?あるいはもっといい方法がCLIに準備されてる?
・逆にインスタンス捨てるコマンドも作る。出来れば捨てた事まで通知されるようにしたいけど、取り急ぎ今は自力で管理画面を見に行くでも良いや。
66(1): 2016/04/26(火)02:21 ID:QVcaBC9I(1) AAS
>>64
おめでと。
67: 2016/05/01(日)17:16 ID:8ElNIYgO(1/3) AAS
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秒ぐらいでチャンクファイルがローテーションしているように見える。
68: 2016/05/01(日)17:42 ID:8ElNIYgO(2/3) AAS
-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秒ぐらいかかる模様。
69: 2016/05/01(日)21:39 ID:8ElNIYgO(3/3) AAS
dash.js で動画再生する際にデインタレースの設定はどこで入れられるのだろうか。
dash.js 側にそのあたり操作するインタフェースありそうななさそうな。
まぁ普通デコーダ側に機能乗っけるよね。
70: 2016/05/02(月)00:06 ID:2cTwAhdB(1) AAS
dash.js のソースまるっともらってきて、
deint あたりで grep したけど引っかかるものがないという恐怖。
H264世代だからもういい加減デインタレースなんてないんやで。
という雰囲気を感じる。
Chromeで再生すると、それなりに綺麗だなぁ。
デインタレースされているように見える。
スマートフォンのChromeでも綺麗に再生できたし。
Firefox Developer Edition の実装上の問題か?
Edgeだとどうだろうね?
71: 2016/05/03(火)22:25 ID:5pVfCqFo(1) AAS
デインタレースがうまく働かない件については、
ffmpeg の MPEG2 ビデオデコード後に -vf yadif 入れてお茶を濁す事にした。
qsv でエンコードはするので、yadif に多少CPU食われてもまぁいいか。という精神。
vpp 実装はロマン枠。
■今週の課題
epgdump の出した番組情報の json を地デジ・BSもキチンとパース出来る様にする
BS1 をエンコードしてる最中に ffmpeg が死ぬ病を治してあげること
利用しているソフトウェアのライセンスを精査
Firefox 以外のブラウザでアクセスしたときに、サーバサイド JS が死ぬ病を治す
やれるところからやっていきましょう。
72: 2016/05/04(水)02:50 ID:btVNiK7/(1/4) AAS
■今後の課題(メモっとかないと忘れそうなので)
1.サーバ → player 側に対する再生停止の命令の発行(websocket でやる。これは簡単そう)
2.サーバ → player 側に対する再生開始の命令の発行(websocket でやる。これは簡単そう)
3.player 画面に、番組表を差し込んで、そこから番組変更をするようなIF設計・実装(めんどくさそうな予感)
4.画面デザインの見てくれをもうちょっと何とかした方が…
→画面なんてなくても番組見られればいいやんけ。の精神で実装しないか。
1,2,3を実装することで、【チャンネル権】を持っている人が、
チャンネル変更をすることが出来るようになる実装になる。
まずは番組表から選択したものが再生できれば最低限いいから、
これは後からやりたいと思っています。
省8
73: 2016/05/04(水)18:42 ID:btVNiK7/(2/4) AAS
> ■今週の課題
> epgdump の出した番組情報の json を地デジ・BSもキチンとパース出来る様にする
出来た。
74: 2016/05/04(水)19:50 ID:btVNiK7/(3/4) AAS
BSのストリーミングを行ったとき、
サーバサイドJS と ブラウザ側JSの websocket 通信(PING)が変だ。
サーバ(PING実施) → ブラウザ(PONG返答) という流れで通信している。
CSは普通に処理されているので、ロジックには問題がないと思っている。
サーバサイドが PONG が来ないからタイムアウトだと言っているんだが、
サーバサイドの JS のログを見る限り PONG は受け取っているようだ。
クライアント側は普通に応答返しているんだろうなぁ。
サーバサイドの微妙なロジック誤りか…
このあたりの実装は大分前にやったので、あんまり覚えていない…
コードも汚いし…orz...
75(1): 2016/05/04(水)21:13 ID:btVNiK7/(4/4) AAS
地デジ, BS, CS のストリームをトランスコードしてリアルタイム視聴できるようになった。
ただ、色々弄ってしまったので、影響範囲を再確認してからコレでいいか確認しましょう。
76: 2016/05/05(木)14:00 ID:A7YjQY7T(1/3) AAS
とりあえず、なんとなく動くような何かが出来た気がする。
地デジ・BS・CSが各1局再生できたから満足。
少し冗長にログメッセージ出しているところを削って、
Videoプレイヤー側の調整をもう少しして0.01版が完成でいいかなぁ。
あぁでも chrome と edge で動作確認ぐらいしておこう…
たぶんうまく動かないからどこか対処しなければならない予感。
■今後対処しなければならないこと
・番組表に出力する放送局の選択をユーザ側で出来るようにする
・使用するチューナデバイスを選択できるようにする(.jsonでやる?)
・現状2ストリームの同時再生が出来ない(ffmpeg の dash muxer の出力命名規則の仕様)
省3
77: 2016/05/05(木)14:08 ID:A7YjQY7T(2/3) AAS
対処項目追記
■今後対処しなければならないこと
・番組表に出力する放送局の選択をユーザ側で出来るようにする
・使用するチューナデバイスを選択できるようにする(.jsonでやる?)
・現状2ストリームの同時再生が出来ない(ffmpeg の dash muxer の出力命名規則の仕様)
・チャンネルの切り替え機能実装
・結局使わなかったJSライブラリの整理
・ffmpeg の音声選択が多分、複数音声構成の場合にマズイ。番組表.jsonに音声構成が入っているみたいなので、そっちから引き継いで何とかしましょう
78: 2016/05/05(木)14:50 ID:A7YjQY7T(3/3) AAS
chrome と edge で試験してみたけど、特段変な事は無いな。
video player の挙動はちょっとブラウザ依存みたいなので、
もう少し余裕のあるように video のストリーム開始条件にしたほうが良さそう。
上下前次1-新書関写板覧索設栞歴
あと 900 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s