トップページ⇒linux
1001コメント365KB

Linux でビデオ録画

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
とりあえずビデオの代わりということで、

ある程度リアルタイムで圧縮
多少品質が落ちても構わない

といったものを bttv を使ってやってみたのですが、
なかなか理想の形にできません。

xawtv 付属の streamer: とりあえず録画可能。使える CODEC が限られて
いるのでサイズがでかくなる。
avifile & vcr: Win32 の CODEC を利用したもの。一見ちゃんと動いて
いるようだったが、できたファイルが読めない。

avifile & vcr だと DivX とか使えるので期待してたのですが、うちでは
ちゃんと動きませんでした。こうすればちゃんと動くだの、他にいいツール
があるだの、リアルタイムで圧縮するよりあとから圧縮した方がいいだの
ご意見よろしくお願いいたします。
0285名無しさん@XEmacs02/12/04 05:50ID:XTPR6vY9
>> 282

gcc3でvcrのコンパイル通らなかったんで試せないんだけど,
そこ弄るなら

+++ capproc.cc2002-12-03 21:49:25.000000000 +0900
@@ -141,7 +141,7 @@

for (int i = 0; i < c_lines; i++)
{
- memcpy(tmpframe + i*c_bpl, z + (o_y_end -i -1)*o_bpl + o_x_off, c_bpl);
+ memcpy(tmpframe + i*c_bpl, z + (a.window.y +i)*o_bpl + o_x_off, c_bpl);
}
}
ch.data=tmpframe;

じゃない?
ここで良いのかは知らんけど(たぶん良いのだとは思うけど).

左右逆ならそれも反転させなきゃいけないけど(わら
0286login:Penguin02/12/04 10:36ID:ksysRNSW
>>282
AHHHHHHHHHHHHHHHHHHHHHH
ジャスト、ビンゴ!
サンクス、見事反転が反転してキャプレました。
(正常に取れたって事です、ええ)

いやぁ、perlしか解かんないのにc++のソス見たが難しいです、はい
028727702/12/04 22:19ID:qS4KHEzT
>>282,285さん
わたしもうまくいきました!本当に感謝です。ありがとー!
0288login:Penguin02/12/04 23:09ID:V9uBia60
厨房な質問であれですが、ざっとスレを眺めた感じ結局ハードウェア炎コーディングのボードは使えないってことですか??
0289login:Penguin02/12/05 00:20ID:YwGu0cs3
>>285
神。
0290login:Penguin02/12/05 01:48ID:WJCNqXZY
つーか、何で皆mencoderつかわんの?
029129002/12/05 01:56ID:WJCNqXZY
269さんの設定ではTV録画出来ないね。
-tv :chanlist=japan-bcast:channel=1 等を追加すればOK
0292login:Penguin02/12/07 01:40ID:2816MrLS
今見直すと286で282って言ってるね(わら
ごめんなさい285の間違いです。
あらためてサンクス

せっかくキャプれる用になったので、今度はメールから予約を出来るようにガンバルつもり。
録画までの流れとしては

1)メール送信→
# メールの内容
-------------------
start:19-30
ch:8
end:30
aikotoba:thx285
-------------------

2)メール受信→
メールの内容をゴニョゴニョして「~/vcr/${start}」のファイルを作成
内容は
#!/bin/sh
/usr/local/bin/vcr -t 30m -p 8 ~/vcr/file/${start}_${date}.avi

3)cronにperlで書いた「~/vcr/今の時間」ファイルがあったらsystemで実行を追加しておく

こんな感じでウマーになる?
まぁ、sageつつやっていきます。
最後までやり遂げられる自身が無いのでアゲないでね(わら
0293login:Penguin02/12/13 09:32ID:tuh058En
う〜ん。mencoderで録画してるんだが、なかなか最適な設定が
見つからん。「漏れはコレでうまくいってるぜっ」って設定が
あったら、是非晒してください。
0294login:Penguin02/12/24 10:46ID:Joo/wvmb
>>261
わたしもエラーでうまくいかん。streamerでとったaviを変換しても
だめだった。RealOne Alpha版は起動しないし。だめぽ。
0295login:Penguin02/12/25 01:11ID:wJ70NEdV
どなたかこれを試した方いらっしゃらないか?
http://www.kuroutoshikou.com/products/tvcuner/itvc15.html

まだ自分は購入を考えているだけの段階です。
ハードウェアエンコのくせにあの安さは貧乏な私には目から鱗なのですが
とりあえず自分なりに調べた内容は…

ここhttp://www.shspvr.com/news.htmlに「iTVC15 Linux Drivers」なるものがあって、そのドライバっぽい?
手元にあったRedHat 8.0でコンパイルしたら問題なくmakeはできたんだけど動くのか実物がないから実証不能(当然か)

player6ってのを実行すると/dev/P2Enc0をDeviceOpenしようとして失敗。

なんとも怪しい動きなので動かしている人がいたら是非お聞きしたい。
0296login:Penguin02/12/29 15:24ID:4mKLVQpS
>>275
「マクロブロックの近隣からどこのブロックをコピーしてくるかを
指示するベクトルを指している」が正解と思われ。
0297login:Penguin02/12/29 18:43ID:gHwARjsc
>>295
持っていますが何か?
アーカイブ落としたらConexant純正じゃないですか。
こういうのは再配布OKじゃないはずですが
029829703/01/02 13:38ID:FtlSXv39
試してみますた。
GCC3.2+Kernel2.4.18な環境のため、Driverからコンパイルする必要がありますた。

結果
Player6を動かしたところ、
Board上にI2CDevice 0x44がねぇぞゴラァと言われて終了。
もう少しいじってみます。

環境
RedHat Linux 8.0
Kernel2.4.18-15smp
GCC3.2

CPU AthlonMP1900+ x2
MB Tyan ThunderK7X(760MPX)
Mem ECC Reg 512MB
下から2番目の32bitPCIスロットにiTVC15-STVPCIを刺して運用
029929503/01/03 20:30ID:2qjXLe4d
>>298
ご連絡ありがとうございます。

いろいろ目をこらして読んでみましたが、
player6のまえにloadっていうスクリプトを
実行しておく必要があるようです。

loadを実行すると、/dev/*にI2Cとかがいろいろ作られるようです。

中にはLinux関係のヘッダファイルを自前で用意しているようです。
ので、カーネルのバージョンをあわせるかなにかしないとダメかも・・?

友人からピクセラ製のiTVC15なボード(例の玄人ではない)を借りて調査中です。
030029503/01/03 22:59ID:2qjXLe4d
>>298

>>299にて先走ったようです。失礼いたしました。
カーネルのバージョンは特に関係なさそうです・・・もっと調べねば・・・

ピクセラ製のiTVC15なボード(PIX-MPTV/P2W)
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)
この環境で、解凍後、"make clean && make" にて完了(特に気になるエラー無し)

test下にて

./player6 -l conf.ini -mRECORD -record "rec"

と遣ったところ、こちらでは以下のようなエラーが発生しました。

ERROR -1025: Device ioctl(910) failed (cmd=1002).
ERROR -1025: ERR[-1025]: I2C Write device 0x11 not found (Reg=0x2,Data=0x29)!!!
ERROR -1025: (5)I2C: W ChipID=11 Addr=2 Mode=0 Data=29
(snip)
ERROR -1025: Unable to program I2C using CS53L32A.txt: CS53L32A_Defaults
ERROR -1025: Device ioctl(910) failed (cmd=1002).
ERROR -1025: ERR[-1025]: I2C Write device 0x11 not found (Reg=0x1,Data=0x1)!!!
ERROR -1025: (5)I2C: W ChipID=11 Addr=1 Mode=0 Data=1
ERROR -1025: Unable to program I2C using CS53L32A.txt: CS53L32A_AudioJack
Beginning player loop...
ERROR -1011: : VSync lock Failed, Aborting the Session (Status=3F3)
Shutting down player session...(Err=-1011)
(snip)

> Board上にI2CDevice 0x44がねぇぞゴラァと言われて終了。
 こちらでは、0x11 っということになりますかね?
 7114.txt 7115.txt CS53L32A.txt とかなにやら置いてありますが、これ怪しい。
030129703/01/03 23:16ID:VGX2+cKF
で、PIX-MPTV/P2Wでも駄目ですか。
ChipID 44つーのはSAA7121らしく、こいつはビデオエンコーダと言って
デジタルなビデオ信号をアナログのビデオ信号に変換する奴(DACという奴です)
なんですが、件のiTVC15-STVPCIには乗っていないのでそれで動かないぽ。
で、それが乗っているPixelaのPIX-MPTV/P2WでCS53L32A(AudioADC)でエラーでつか・・・

その辺のデバイス構成をハードコーディングしているっぽ
0302login:Penguin03/01/04 01:57ID:COkJ8YG3
はじめまして。
初めてカキコします。

C言語でプログラムしていまして、
bttvを使っています。
一応1フレーム640×480のRGB値をキャプチャできるとこまでは
つくったんですけど、
これをリアルタイム保存するために
どうすればいいですか?
できればmpegで保存したいです。
ソフトウェアではどうすればいいですか?
いいライブラリ知りませんか?
0303PIX-MPTV/P2W by 29503/01/04 02:23ID:JgarMJvt
>>301
> で、PIX-MPTV/P2Wでも駄目ですか。

あと一歩で動きそうな?雰囲気です。
設定ファイル
[tv]
ScanList=Scan.lst
Scan=0
Input=Air
[General]
BitRate=8M
PeakRate=16M
CBR=0
vTuner
vNTSC
Mode=record
File=test.mpg
FwDownload=3 # これでファームウェアをげっとする?
Loop=0
StreamType=MPEG2TS

でやると、
ERROR -1011: : VSync lock Failed, Aborting the Session (Status=3F3)
ってエラーが出ます。VSyncCheckって関数でエラーを返しているようですが、まだよくわかってません。
ほかにはエラーはなさげです。

> なんですが、件のiTVC15-STVPCIには乗っていないのでそれで動かないぽ。

玄人のやつはやっぱり特殊なのかな(T-T)
0304login:Penguin03/01/04 09:58ID:rDUZUDhP
>>302みたいなのは期待しちゃうね。
俺はプログラマじゃないんで詳しいことはわからないけど、ffmpegとか
avifileとかあたりのぞいてみると嬉しいかもよ。
そいやMAlibなんてのもあったなあ。あれどうなったんだろう。
0305saa7133mitai03/01/04 18:57ID:8iDhsCpd
>> 276
の書き込みをされた方。 その後、いかがですか。うまくいきましたか?

私もエイヤと同じボードを買ったので、Linux, FreeBSD でみたいと
思っています。ただいま、2.4.20 のカーネルをコンパイル中。
はじめてなもんで、ここでつまづいています。このあと、V4Lのパッチ、
SAA7134のパッチのインストールですが、いつになるやら。。
0306login:Penguin03/01/05 17:35ID:JNuAvC8h
http://121ware.com/nsserver/ax/
これハックして英雄になって下さい。
NEC HDDレコーダー PK-AX10【3】
http://hobby.2ch.net/test/read.cgi/av/1040479449/
0307login:Penguin03/01/06 00:23ID:Tuc9bQPf
>>302
CPUは何でつか?
最近の速いCPUならMPEGに出来るかも知れないけど、実際vcrとかで可能か確かめて
からにしてはいかがでしょ。

if(可能そう)
 avifileを見る
else
  motion-jpegでガマン。rtjpegってエンコーダが速いよ。
0308login:Penguin03/01/06 01:52ID:iy8N0st7
能力的にはかなり余裕.
Athlon 2200+ (1.80GHz clock speed)× 2を使ってますから.
まずvcrとは何かから調べてみます.
0309login:Penguin03/01/06 10:49ID:p0IOpkAY
http://oscar.as.wakwak.ne.jp/linux/capture.shtml
のようにvcrをインストールしようとしましたが,
rpm 作れず...
なんか簡単な方法を...
0310login:Penguin03/01/06 10:52ID:p0IOpkAY
>>309の続き
rpm -bb vcr.spec
を実行したら
-bb: unknown option

rpm のバージョンが問題か!?
0311login:Penguin03/01/06 17:16ID:6NlSJeEY
http://monstertv-linux.sourceforge.jp/ にあるsaa7134ドライバを使って
録画に成功してる人いますか?

こちらの環境 (モバアス1800+, SiS740, 2.4.20-xfs + saa7134)だと、
・xawtv-3.81 → 画面が色とりどりのノイズ状になってしまう。静止画キャプチャはできる
・nvrec-20021215 → フレームバッファのタイムアウトが連発して録画不能。

Experimentalな要素満載って話もありますが(w、 とりあえず最低限動いてるぜっていう
例がありましたら教えてください。

# なんかMLのほうは人がいなさそうなので...
0312login:Penguin03/01/06 22:44ID:d4DCyVZY
>>302さん
mpegっていうのが mpeg1であれば、ffmpegに添付(?)の libavcodecか
libfameを使うのが良いのではないでしょうか。

# 映像だけでなく、音の multiplexとかも必要であれば
# libavcodecのほうが良さそうです。
# でも multiplexのサンプルが無くて挫折中です(泣
031331203/01/06 22:53ID:d4DCyVZY
>>276さん
>>305さん
「【BT878】Linuxでのキャプチャを語るスレ」の 41です。
とりあえず xawtvでは動作しますた。
で、自作の v4lアプリだと 311さんご指摘の nvrec-20021215と
同様の問題が発生してうまくキャプチャできません。

# おそらく v4l & mmapを使用した転送に失敗しているのでは
# なかろうかと見当をつけているんですが、v4l2に変えるのも
# /dev/videoを読む方法に変更するのもかったるいので
# ほったらかしにしてます。(BT878なら動くのになぁ・・・)
0314login:Penguin03/01/07 07:20ID:A0niU3V4
>>312さん
libfame?
使用説明のサイトってありますかね?
調べてみます.
0315login:Penguin03/01/07 07:36ID:ygBI5yhQ
MTV2000使いたい・・・

仕様公開しやがれコンチキショー
031631203/01/07 22:44ID:v8itZhSS
>>314さん
FAME公式サイトに recmpegというサンプルがあります。
結構シンプルなものなのでわかりやすいと思います。

ttp://fame.sourceforge.net/

# すでに見つけてしまったかもしれませんが・・・
0317login:Penguin03/01/07 23:18ID:A0niU3V4
>>312さん
ありがとうございます.
みてみます.
031831703/01/08 17:15ID:2BorXPj9
>>312さん
一応recmpegインストールしたんすけど、
結局yuvで出力してからみたいですね。。。<- 調査不足??

関数としてRGB値をどうやって
引数にいれて出力するかわかりませぬ。
0319海外もの03/01/08 17:30ID:z1E84qN/
mencoderで録画はできるんですが、音が録音されないんです。
コマンドは、
mencoder -tv on:driver=v4l:width=400:height=300:norm=NTSC \
:forcdaudio:chanlist=us-cable:channel=99 -ovc lavc
-lavcopts vcodec=mpeg4:vbitrate=350
-fps 29.97 -oac mp3lame -lameopts cbr:br=64
-vop pp=lb,crop=384:288:8:4 -o output.avi -endpos 10
てな感じで10秒間だけ録画しています。
で、走らせて次のように表示されるんですが、
MP3 audio selected
Building audio filter chain for 44100Hz/1ch/16bit -> 44100Hz/1ch/16bit...
Writing AVI header...
Forcing audio preload to 0, max pts correction to 0
Pos: 10.0s 300f ( 0%) 29fps Trem: 0min 0mb A-V:0.000 [374:63]

CBR audio: 8000 bytes/sec, 209 bytes/block

Writing AVI index...
Fixup AVI header...

Video stream: 374.820 kbit/s (46852 bps) size: 468995 bytes 10.010 secs 300 frames

Audio stream: 64.000 kbit/s (7999 bps) size: 79830 bytes 9.979 secs

真中らへんの0%というのは正しいのでしょうか?
環境はDebian Woodyです。mplayerでテレビは見えています。音も出ています。
032031203/01/08 20:50ID:yEpZMntk
>>318さん
というか、RGBでキャプチャしなければいけない理由ってありますか?
放送自体が YUVなハズ(ですよね?)なので、V4L->RGB->MPEGよりも
V4L->YUV->MPEGのほうが変換も少なくて良いのではないかと思ったりします。

# 勘違いならスマソ
0321名無しさん@Emacs03/01/08 21:10ID:5qZM0Y/Q
>>319
capture device に音が来てるかチェックしたらいいかも。
0322IP記録実験03/01/08 21:10ID:DJ5zDJa+
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0323login:Penguin03/01/09 02:40ID:jLaWmJEi
今まで取ってなかったの?
0324login:Penguin03/01/09 03:22ID:ISsnTmLL
てすと
0325login:Penguin03/01/09 04:13ID:QCoHsjPG
誰か、出るっ、出ますうっ のテンプレでセンスのいいやつ考えて。
0326海外もの03/01/09 07:45ID:Yq44YS4O
>>321
おそらくmencoder自体はちゃんと機能していると思うんで、
321さんの言うようなことをチェックしたらいいと思うんですが、
kmixとかのミキサーでラインインや関係のありそうな所は全て
ボリュームアップしているのですが、結果は同じなんですよね。
他にcapture deviceに音が来ているかどうかチェックする方法あるのでしょうか?
0327海外もの03/01/09 08:47ID:Yq44YS4O
音も録音できるようになりました。すげーうれしい。
やっぱりミキサーで録音できるようにしていませんでした。
kmixerを使っているんですが、ラインを録音できるようにして
IGainのボリュームを上げたら、音も録音できるようになりました。
0328login:Penguin03/01/09 11:46ID:brrbmw4B
>>318さん
一応v4l->RGB->MPEGってやりたいつもりです.
YUVでキャプチャしようとも一度は考えましたが,
RGBの方が慣れ親しんでいるので.

#わがままでごめんなさい
032931203/01/09 22:49ID:Y8/Lfx0T
>>328さん
>一応v4l->RGB->MPEGってやりたいつもりです.

であれば RGB->YUV変換をカマすという手があります。
たしか ffmpeg(libavcodec)に RGB->YUV変換の
ライブラリがあったと記憶しているので

v4l->RGB->YUV420->MPEG(recmpeg)

と変換できるハズです。

# それなら libfameでなく libavcodecの mpeg変換を
# 使用するのが良いと思いますが...
0330login:Penguin03/01/10 02:02ID:DszMpP44
>>327
mencoderってman見ても良くわかりません。
オプションの解説して頂けると助かるのですが。。
0331login:Penguin03/01/10 06:51ID:lqiY/P02
vcr1.0.9 + avifile0.7.12 (Debian package) + kernel2.4.18
な環境でvcrで録画しようとすると
Invalid codec name given!
Available codecs:

"Uncompressed RGB" 3
"Uncompressed YUY2" 3
"Uncompressed YV12" 3
"FFMPEG OpenDivX" 3

と出るんですよね。
.vcrrcにはcodec = DivX ;-) low-motion と書いています。で、
codec = FFMPEG OpenDivX とか
codec = OpenDivX とかやっても同じエラーが出てしまうんです。
どなたか同じ境遇にあった方いますか?
過去ログに目を通しましたが同じような方いなかったです。
vcr1.0.8を試しましたが、コンパイルできなかったです。
033232803/01/10 10:43ID:30HLxGjN
>>329さん
libavcodecですか?
いろいろ手間ですねぇ。。。
がんばってみます。
0333login:Penguin03/01/10 23:03ID:ik7mWv55
>>331
vcr-1.0.9 は DivX ;-) high-motion のみで しかも bitrate 指定効かない。だめ杉。
vcr-1.0.8 が make できる環境にもっていくか、nvrec でしょうね。
033432803/01/11 15:40ID:IBov+qvj
>>329さん
結構教えてばっかりですいません。
いつもありがとうございます。

libavcodecでどうやってエンコードするんでしょうか?
033532903/01/12 11:42ID:zhQ+YCDx
ffmpeg(libavcodec)のソースを拾ってきましたか?
中に apiexsample.cというサンプルコードが入ってますから
参照してみてください。

# 0.4.6になってちょっと引数が変わったりして鬱
# あと、誰か multiplexのサンプルコード書いてくれないかなぁ・・・
0336login:Penguin03/01/12 15:15ID:sIX1dA32
>>329
すでに落としました。
参考にしてみます。
033732803/01/12 16:10ID:sIX1dA32
>>329さん
apiexsample.cの
video_encode_exampleっていう関数ですよね?
c->width, c->heightを画像サイズに変更?

/* encode 1 second of video */ 以下を変更すればいいと思ったのですが,
どれがRGBのdataをどこに?
picture->dataが何を指しているかさっぱりです.

#コンパイルするにもgcc aviexsample.c -lm で駄目みたいっすね(汗
0338login:Penguin03/01/12 16:58ID:kvaEgL8v
>>333
nvrecって録画すると音声と画像がずれるのですが…ウチだけでしょうか?
0339login:Penguin03/01/13 00:24ID:V6pOdtMh
debianのwoody(kernel-2.4.18)でAD-TVK55R使っていて、compositeの映像とりこもうとしてるんですけど、
bttvもしくはbttv2をmodprobeして一応映像も音声もしっかりとれるんですが、しばらく(2、3分前後)たつと
ハングするんですが、これって何が原因だと思われますか?
とりあえずi2cやvideodev(videodevX)はモジュールで組みこんでも大丈夫ですが、bttvを組みこんだ途端こんな現象になるんですが…
0340login:Penguin03/01/13 01:53ID:j9l+cA1L
nvrecとかvcrで録画すると、下のエラーが出てクラッシュするんだけど
なんか解決策ない?

Jan 14 04:38:23 prism kernel: bttv0: PLL: switching off
Jan 14 04:38:48 prism kernel: bttv0: irq: OCERR risc_count=0fad7810
Jan 14 04:38:48 prism kernel: bttv0: irq: SCERR risc_count=0fad7810
Jan 14 04:38:48 prism kernel: bttv0: irq: SCERR risc_count=0fad7810
Jan 14 04:38:49 prism kernel: VM: killing process sshd
Jan 14 04:38:49 prism kernel: bttv0: irq: OCERR risc_count=0fad7810
Jan 14 04:38:49 prism kernel: bttv0: irq: SCERR risc_count=0fad7810
Jan 14 04:38:49 prism kernel: bttv0: aiee: error loops
Jan 14 04:38:49 prism kernel: bttv0: irq: SCERR risc_count=05d64014
Jan 14 04:38:49 prism kernel: bttv0: aiee: error loops
Jan 14 04:38:49 prism kernel: bttv0: resetting chip
034132803/01/13 13:28ID:rt/a96c9
>>329さん
libavcodecのapiexsample.cにおいて,
picture->data がYUVのポインタで,
fwriteでoutbufとして出力してるのかなぁ...
outbuf_size = 100000; ってのは適当な大きさなのか?

/* encode 1 second of video */
以下のfor文のiはなぜ25までなのか...

# /* add sequence end code to have a real mpeg file */
#ということはいつのまにかmpegファイルをつくってるみたい??
どういうことかわかりませんか??
034232803/01/13 13:59ID:rt/a96c9
ffmpeg の libavcodecの中の
apiexsample.cのvideo_encode_example関数で
よ?くみると,
RGB値を代入していないですね.
書き込みしかやってないような...
034332903/01/13 14:10ID:cvvoW/Sc
>>337さん

>c->width, c->heightを画像サイズに変更?
はい。エンコード後の画像サイズになります。

>/* encode 1 second of video */ 以下を変更すればいいと思ったのですが,
>どれがRGBのdataをどこに?
>picture->dataが何を指しているかさっぱりです.
コレ、YUVなんです。RGBを MPEG1に変換するには img_convert()を使って
V4L->RGB->YUV->MPEGとしなければダメじゃないかと思います。

>#コンパイルするにもgcc aviexsample.c -lm で駄目みたいっすね(汗
gcc apiexsample.c -lm -lavcodecじゃダメ?
というか、 make apiexsampleで OKだったような記憶が...
034432903/01/13 14:11ID:cvvoW/Sc
>>341さん

>picture->data がYUVのポインタで,
>writeでoutbufとして出力してるのかなぁ...
コレ正解
>outbuf_size = 100000; ってのは適当な大きさなのか?
うーん。私もちょっとわかりません。
まぁ、outbuf_sizeを avcodec_encode_video()に渡しているんだから
内部でよろしくやってくれていると信じてます(w

>/* encode 1 second of video */
>以下のfor文のiはなぜ25までなのか...
これ、PALを想定しているんでしょう。
NTSCなら c->frame_rate = 25 * FRAME_RATE_BASE も 29.97に
変える必要があります。

># /* add sequence end code to have a real mpeg file */
>#ということはいつのまにかmpegファイルをつくってるみたい??
>どういうことかわかりませんか??
ここで作成しているのは、あくまで MPEG1 Videoのデータであって、
MPEG1のストリームとして使うためのシーケンスコードを
ムリヤリくっつけているという意味に理解してます。

# うまく説明できません。識者の解説求む
034532803/01/13 21:13ID:rt/a96c9
>>329さん
>gcc apiexsample.c -lm -lavcodecじゃダメ?
>というか、 make apiexsampleで OKだったような記憶が...
makeの方ならできました.

>>/* encode 1 second of video */
>>以下のfor文のiはなぜ25までなのか...
>これ、PALを想定しているんでしょう。
>NTSCなら c->frame_rate = 25 * FRAME_RATE_BASE も 29.97に
>変える必要があります。

c->frame_rate = 29.97ってことですか?
ならfor文のiについては??

>コレ、YUVなんです。RGBを MPEG1に変換するには img_convert()を使って
>V4L->RGB->YUV->MPEGとしなければダメじゃないかと思います。
img_convert()のどの引数にどれをいれればいいんですか?
RGB値とか.
034632903/01/13 22:55ID:cvvoW/Sc
>>328さん
>>NTSCなら c->frame_rate = 25 * FRAME_RATE_BASE も 29.97に
>>変える必要があります。
>c->frame_rate = 29.97ってことですか?
>ならfor文のiについては??
これ、あくまでサンプルソースなのです。
サンプルソースが何をしたいのか、あなたが何をしたいのかによって
ここは変更されるべきであり、場合によっては存在する必要すら
ないかもしれません。
# 1秒間の MPEGを作成とすることを目的とするならば、
# i = 30とすることにより、ほぼ 1秒の MPEGファイルが作成できます。

>>コレ、YUVなんです。RGBを MPEG1に変換するには img_convert()を使って
>>V4L->RGB->YUV->MPEGとしなければダメじゃないかと思います。
>img_convert()のどの引数にどれをいれればいいんですか?
>RGB値とか.
apiexsample.cが格納されていたのと同じフォルダに
img_convert.cがあります。
それを参考にしていただければ良いのではないかと思われます。

# img_convert()を直接使ったことがないので、
# あいまいな回答です。スマソ
0347禿遅レス03/01/14 19:35ID:VYqoZmDt
>142
at HH:MM mm.dd.yy
034832803/01/14 22:10ID:vpkrREmg
>>329さん
ffmpegのlibavcodec/imgcomvert.cにおいて,
おそらくimg_comvert()の引数は,
AVPicture *dstの
dst->data[0]: Y
dst->data[1]: U
dst->data[2]: V

AVPicture *srcの
src->data[0]がrgbの並び
つまりrgbrgbrgb....

そしてwidth, heightかなぁ...

もしそうならimg_comvert()使わずにはじめから
rgb24_to_yuv420pに代入した方が早そう.
これでyuvのデータに変換ですかな!?

#少し前進?
034932903/01/14 22:26ID:Qsvavs52
>>328さん
たぶん img_convert()の使い方は正解ではないかと思います。
実験していただけるとありがたいです。

>もしそうならimg_comvert()使わずにはじめから
>rgb24_to_yuv420pに代入した方が早そう.
たしかに rgb24_to_yuv420p()を呼ぶという手もあるのですが、
static宣言されているので、直接呼ぶためには ライブラリを
改変するか、コピペする必要があります。

# GPL的に見て・・・・良いのかなぁ?
# やっぱり V4Lで YUV420Pを直接取り出すってのはダメ?
0350山崎渉03/01/15 11:20ID:m6zO97qQ
(^^)
0351login:Penguin03/01/15 23:10ID:C2YCuCOf
age
035232803/01/15 23:31ID:C2YCuCOf
>>329さん
>たしかに rgb24_to_yuv420p()を呼ぶという手もあるのですが、
>static宣言されているので、直接呼ぶためには ライブラリを
>改変するか、コピペする必要があります。
そうですね。
コピペしようと思ってます。

># GPL的に見て・・・・良いのかなぁ?
># やっぱり V4Lで YUV420Pを直接取り出すってのはダメ?
やはりRGB値で。
商用ではないのでいいと思いますけど。。。(汗
0353login:Penguin03/01/17 09:14ID:E4e+G16x
age
035432803/01/17 19:37ID:ahfrsJ1E
>>329さん

rgbのデータが640×480の場合
YUVの各値の配列をどのくらい確保すればいいですか??
035532803/01/17 21:34ID:ahfrsJ1E
たぶん
Y[640×480]
U[640×480 / 4]
V[640×480 / 4]
みたいですね。

このyuvを例のapiexsample.cを参考に書けばいいのかな!?
しかしこれをどうやってリアルタイム処理するのかが問題。
1フレームずつmpeg変換は偽mpegできてしまう。
むむむ。
0356login:Penguin03/01/17 22:41ID:GgnZWMGW
シャープの Linux 搭載 AV サーバ。MPEG2 録画や MPEG4 への変換が
できるそーな
http://www.watch.impress.co.jp/av/docs/20030117/sharp.htm
035732803/01/18 00:46ID:itk1ctN9
>>328
YUVの配列については >355の容量であってます。 (YUV420Pの場合)
で、apiexsample.cを参考にした mpeg変換ですが・・・いっそサンプル書きましょうか?

# saa7134だとうまく動かないヤツですが (笑
0358login:Penguin03/01/18 17:53ID:shU5Br7V
mencoderで録画してるとcpuが40%も使われていません。
これを100%近く使ってくれるようにする方法ってないの?
dvix+mp3でやってると音がずれていくのがましになればなと思って。
0359login:Penguin03/01/18 20:35ID:XeNpcIRR
CPU パワーが十分にあるということではないの?
0360login:Penguin03/01/18 20:42ID:PtrC5hhf
ワシもメンコーダ使ってるけど、特に音がずれるってことはないけどな。
バージョンはいっち新しいやつね。
0361login:Penguin03/01/18 22:50ID:5pCh98Ak
358です。
CPUはDuron1.0GHzで、menconderは0.90rc2-2.95.4です。

mencoder -tv on:driver=v4l:width=400:height=300:norm=NTSC \
-tv forceaudio:chanlist=japan-bcast:channel=1 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350 -fps 29.97 \
-oac mp3lame -lameopts cbr:br=64 -vop pp=lb,crop=384:288:8:4 \
-o video.avi -endpos 30:00

で録画すると音が遅れます。おかしいとこありますか。
0362login:Penguin03/01/18 23:08ID:dei97rT9
>>358
HDの速度がCPUの能力に比べて遅いのでは?

音がずれるのは別な原因だと思います。
(mencoderが画像のフレーム落ちとかをちゃんと扱えていなくて
タイムスタンプがおかしくなっていってるとか…)
0363名無しさん@Emacs03/01/19 06:25ID:W16lmswG
>>361
うちでも同じ環境でずれちゃう。
でも、mpeg1video を使うと大丈夫だったので、
そうしてます。
br=32 とかでも大丈夫な感じでした。なにが悪いのかな。
036432803/01/19 17:34ID:r1PtyBiw
>>329さま
>YUVの配列については >355の容量であってます。 (YUV420Pの場合)
>で、apiexsample.cを参考にした mpeg変換ですが・・・いっそサンプル書きましょうか?
ぜひお願いします.
RGB->YUV->MPEGまで..(笑
MPEGまでやってくれたらかなり感激です.

#YUVはmallocかなんかで動的確保で.
0365login:Penguin03/01/19 19:02ID:Z9Vvhg9f
>>356
このシャープのLinux搭載AVサーバって、ソース公開してくれるのかね?
0366login:Penguin03/01/19 19:39ID:mdbBfrx9
>>365
無理じゃない?
GPLの派生物なら別だが。

ホームサーバが欲しいなら、PCで我慢でしょ。
http://www.parkcity.ne.jp/~takezawa/scripts/videoserver.html
http://gussh.hp.infoseek.co.jp/toda/
とかで。
0367SYS03/01/20 00:37ID:8p797Kuk
>>295

今はDownLoadできないみたいだけど
どこかで可能ですか?
0368login:Penguin03/01/20 02:44ID:gWJ8k3kT
>>358,363
mencoderってオプションが沢山あるんすね。
どっか参考になるサイトとか教えてください。
036932803/01/20 16:42ID:s+O3NnPO
>>364さん
了解しますた。
じゃ、明日にでもサンプル書いてアップします。

# 購入したプラズマテレビを眺めてたら、なにもせずに土日がすぎさってしまった(笑
037032803/01/20 17:05ID:WO+UvGsX
>>369さん
ありがとうございます。
リアルタイムでできるんかなぁ。。。

参考になるかわかりませんが、
RGB値はNTSCでV4Lでキャプチャ
理想はキャプチャしてる間リアルタイムmpegエンコードです。

結構チェックしてますので、
よろしくお願いします。
037132803/01/20 19:26ID:WO+UvGsX
>>369さん
>>370に追加

画像サイズは640×480です。
037232803/01/20 20:47ID:WO+UvGsX
上記追加

fpsは一応計算しています.
画像処理したりすると30fpsとれません.
それも考慮を...m(_ _)m
037332803/01/21 19:01ID:SCjG291J
>>329さん
一応自分でサンプル見てつくったんですけど,
動いてしまいました.

yuvの値をfwriteしただけなのに...
やはりRGBに比べて画質が落ちますね.
今後はこれを改良したいですね.
0374bloom03/01/21 19:05ID:4LwwqWUr
http://www.agemasukudasai.com/bloom/
037532903/01/21 21:21ID:ln6x37kr
# >>357と >>369で名前を間違ってた。
# 328じゃなくて 329です。 わかりにくくて スマソ

>>328さん
あ、無事動きましたか。おめでとうございます。

>やはりRGBに比べて画質が落ちますね.
こればっかりは仕方ないかと・。
でも、PCIの帯域を考えたりすると YUVのほうが
高解像度には向いているんではないかと思います。

と書いていて気づいたのですが、もしかして V4L->RGB->YUV->MPEGって
処理の流れだとすると、単に RGB->YUV変換で画質が悪化しているだけかも

当方だと、YUV420の MPEG1(720x480) 4Mbpsで結構イイ感じなんですが・・・

# RGBで成功されているようなんで、せっかくだから YUVのサンプルにします。
# もう少しまっててくださいな。 (え?誰も待ってないって?)
037632803/01/21 23:34ID:SCjG291J
>>329さん
>でも、PCIの帯域を考えたりすると YUVのほうが
>高解像度には向いているんではないかと思います。
それはどこで何に代入するんですかー?

もちRGB->YUVで劣化しています.
YUV420ってRGBに対して情報量が減りますからね.

YUVをそのままMPEGにしていますが,
本来はP, I, Bピクチャとかなんとかで
なんとか予測ってやってましたよね?
今回やってないような...

画質がきれいな保存方法ってなんかありますか?
0377login:Penguin03/01/23 10:40ID:w/2+CfXZ
huffyuvと同じことやれば?

最終保存だとあれだけど。

YUV1:1:1で可逆圧縮が情報量がそのままで小さくなるのは原理。
037832803/01/23 12:10ID:Y42YrbwT
>>377さん
>huffyuvと同じことやれば?
それってMPEG1に変換できるんですか??

MPEG1より高画質に
MPEG保存(例えばMPEG4とか)ができるライブラリ知りませんかー
0379login:Penguin03/01/23 12:13ID:ypwnQrbU
mencoderで>>361みたいにして録画すると、音声は入ってるが画像は緑一色という状態。
nvrecだとちゃんと録画できるんだけど。
何がいけないんだろう。
038037903/01/23 13:41ID:ypwnQrbU
自力解決しますた。
mga_vid.oがRAMサイズを誤認識してて、再生に失敗してただけで、
録画はできてました。
やっぱり音は遅れてましたが。
ウチの環境でまともに録画できるのはnvrecしかないか。
0381T.Y03/01/24 03:19ID:fqI+UWVA
http://heroinewarrior.com/cinelerra.php3
ビデオの編集ソフトだけどv4lの入力が対応しています。
0382斉藤守03/01/24 03:29ID:WRzs92f1
吉祥寺にある大検・大学受験予備校の中央高等学院
ここは、完全に狂ってる。
授業料は一年分一括前払いなので、
金が入れば、生徒は要らない
金を振り込んだら、何とかその生徒を辞めさせようと
講師どもが、あの手、この手でイヤガラセをしてきますね。
セクハラはもちろん、脈絡の無い罵倒は日常茶飯だね。
酒臭い講師もいるし・・・ 人生の最果て中央高等学院
学歴詐称、経歴詐称、合格実績詐称、デタラメ授業、
http://www.chuo-school.ac/
http://chs-f.com/index.html 中央高等学院福岡校
0383login:Penguin03/01/26 12:31ID:yAV18BtI
age
0384login:Penguin03/01/27 00:11ID:tonKYpBd
mencoderでTVを録画すると音声だけがすごく間延びした音になるんですが、
何か設定が悪いのかな?
画面はちゃんと録画できてるんですよね。
0385login:Penguin03/01/29 21:28ID:7kcGeuys
>>361,363
うちでも途中から音が遅れるようになってしまう。挙動を見ていたら、
録画が進むにつれ物理メモリを消費して、喰い潰したところで
dropping audio frame と出る。 -oac copy や -oac pcm なら殆ど
物理メモリの消費は増えないので大丈夫っぽい。バグってるのかな
■ このスレッドは過去ログ倉庫に格納されています