ffmpegならこちらへ 3 [無断転載禁止]©2ch.net

1名無しさん@お腹いっぱい。2017/02/21(火) 22:04:57.35ID:8J7qip0G0
公式サイト
http://ffmpeg.org/

エンコード、ストリーミング配信を高画質高音質で行えるffmprg。
OSに拘らず対応コーデックが多い。
対応コーデックが多く、多彩なオプションを使用可能。
コマンドラインから使用することができる。

ffmpegならこちらへ 2
http://potato.2ch.net/test/read.cgi/software/1420916868/

620名無しさん@お腹いっぱい。2018/04/29(日) 09:43:59.67ID:ySNi5vX00
結局h265とvp9、av1はエンコード速度が遅くて難儀する
見れればいいってだけならハードウェア支援

621名無しさん@お腹いっぱい。2018/04/29(日) 09:58:56.92ID:5M1ANoG+0
常に我慢できるギリギリまでエンコードの負荷は上がり続けるからな
数年後にもやっぱり長時間CPU回してると思う

622名無しさん@お腹いっぱい。2018/04/29(日) 11:04:48.31ID:ae2FmOo90
ストレージなんて今はゴミみたいに安くなってるんだから
設定高めのハードウェアエンコでさくっとエンコしちゃうのが今の流行

623名無しさん@お腹いっぱい。2018/04/29(日) 21:50:08.43ID:OdoAkKke0
BDMVが溜まってきたけどハンドリング悪いからmakemkvでmkvの1ファイルにしようかと思ったらx86のlinuxでは動くのにraspiだと動かないのかよ。
ホームネットワーク用に常時稼働させてるけど負荷低いからダラダラエンコさせとくのにちょうどいいのにな。
ffmpegでなんとかするか。

624名無しさん@お腹いっぱい。2018/04/29(日) 22:00:34.63ID:qfeJlBmg0
突然独り言を語りだす人こわい

625名無しさん@お腹いっぱい。2018/04/30(月) 09:39:57.54ID:5kVazbbV0
お前の前髪の後退ぶりのほうが怖いわボケナス

626名無しさん@お腹いっぱい。2018/04/30(月) 13:36:14.15ID:kqz0sxCW0
オマエ前髪どころか髪自体無いやん…

627名無しさん@お腹いっぱい。2018/04/30(月) 19:33:49.46ID:/EwrMGlV0
>>613
>>612はできないことにして、手取り足取り教えてもらおうとしてるだけ
放置でOK

628名無しさん@お腹いっぱい。2018/05/04(金) 21:42:36.90ID:8p8j2POP0
360度動画として認識させるためのメタデータの付加ってどのオプション?

629名無しさん@お腹いっぱい。2018/05/22(火) 08:13:34.92ID:gUl6Bovu0
ffmpegを使って
動画を再エンコードしつつ、音声を削除したいと考えています。
-map 0:0  や   -an  を入れると
音声を削除することができるのですが、
普通に動画を再エンコードする場合と比べて
10倍くらい時間がかかってしまいます。
これは仕様なのでしょうか?
 

630名無しさん@お腹いっぱい。2018/05/22(火) 11:08:14.48ID:lKL6167X0
-c:v copyで映像を分離してからエンコードしたら?

631名無しさん@お腹いっぱい。2018/05/26(土) 14:29:07.31ID:HhQQQEL80
動画に時間を表示したいのですが

-vf drawtext=fontsize=40:x=(w-text_w)/2:y=(h-text_h)/2:fontfile='C\:\\Windows\\Fonts\\Arial.ttf':text=%{pts\\:hms}:box=1

というコードで
00:00:00.000
という表記で表示することはできました。

ただ、時間や分、ミリ秒は表示せず
トータル時間の秒数だけを表示したいのですが
どのようにすれば良いですか?

632名無しさん@お腹いっぱい。2018/05/26(土) 15:03:42.81ID:DqscT+050
自己解決しました

6336312018/05/26(土) 18:59:50.02ID:HhQQQEL80
自己解決していません
 

634名無しさん@お腹いっぱい。2018/05/26(土) 19:07:32.59ID:oCDEtfBR0
スマンがちょっと笑った

635名無しさん@お腹いっぱい。2018/05/26(土) 19:53:08.32ID:KSFV0mL+0
text='%{pts\:t}'

636名無しさん@お腹いっぱい。2018/05/26(土) 19:53:47.52ID:KSFV0mL+0
まちがえたこっちだ
text='%{eif\:t\:d}'

637名無しさん@お腹いっぱい。2018/05/26(土) 22:38:26.44ID:HhQQQEL80
>>636
ありがとうございます。
うまくいきました。

あと、-iの前に-rで大きなフレームレートを指定すると
高速再生することができますが、
この方法だと、フレームレートを大きくした後の動画の時間に対してタイムコードが付いてしまいます。
timecode='00\:00\:00\:00':r=59.94
という方法だと、フレームレートを大きくする前の動画の時間に対してタイムコードが付くのですが
前述のように00:00:00.000 というフォーマットになってしまいます。
どのようにすれば良いでしょうか?

6386372018/05/27(日) 17:28:41.19ID:Ui2+O+mA0
どなたかお教えください。
 

639名無しさん@お腹いっぱい。2018/05/27(日) 19:51:33.96ID:zoTvVaWy0
>フレームレートを大きくする前の動画の時間に対してタイムコードが付く
つまり倍速再生にして、時間経過も倍速表示にしたいと

25fps の動画の場合、倍速分の入力フレームレートを指定し、最初に倍速分の pts を掛けて、元に戻す
ffmpeg -r 50 -i input -vf setpts=PTS*2,"drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:t\:d}'",setpts=PTS/2 output.mp4

640名無しさん@お腹いっぱい。2018/05/28(月) 00:31:14.26ID:opXZSFia0
すいません、以下ご教示頂きたいのですが分かる方、何卒よろしくお願いいたします
【やりたいこと】
 画面キャプチャを取りながらPC音とマイク音を合成したMP4を作成したい
 ffmpegの起動引数
 【マイクだけ or PC音のみは問題なし】
 例:-rtbufsize 30M -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder"
-y -f mp4 -c:v libx264 -b:v 2500k -r 30 -c:a aac -af aresample=async=100 -pix_fmt yuv420p -tune zerolatency "E:\test.mp4"
 【MixしようとするととたんにNGになる】
 例:-rtbufsize 130M -f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="マイク (Realtek High Definition Audio)"
-f dshow -i video="screen-capture-recorder" -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -y -f mp4
-c:v libx264 -b:v 2500k -r 30 -c:a aac -pix_fmt yuv420p -tune zerolatency "E:\test.mp4"

6416402018/05/28(月) 00:32:50.80ID:opXZSFia0
追加ですが、エラーとしては「real-time buffer [screen-capture-recorder] [video input] too full or near too full (121% of size: 3041280 [rtbufsize parameter])! frame dropped!」

というエラーが発生します

642名無しさん@お腹いっぱい。2018/05/28(月) 22:53:13.30ID:LzpOTsQQ0
screen-capture-recorder でエラーが出るなら
gdigrab に代えてみたら
ttps://ffmpeg.org/ffmpeg-devices.html#gdigrab

643名無しさん@お腹いっぱい。2018/05/29(火) 02:51:28.54ID:Pu1eGPwQ0
>>640,641
エラーメッセージの、3041280ってデフォルト値っぽいけど

ttps://ffmpeg.org/ffmpeg-formats.html#Format-Options
>rtbufsize integer (input)
>Set max memory used for buffering real-time frames.

入力(-i xxx )毎に指定するのかな?
だから、video入力の前につけてみたらどうだろうか
-f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="マイク (Realtek High Definition Audio)" -rtbufsize 30M -f dshow -i video="screen-capture-recorder"
-filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -y -f mp4
-c:v libx264 -b:v 2500k -r 30 -c:a aac -pix_fmt yuv420p -tune zerolatency "E:\test.mp4"

644名無しさん@お腹いっぱい。2018/05/30(水) 16:55:57.14ID:th332wA20
初めまして。
質問させていただきたいのですが、.m4vから.mtsへ以下のフォーマットで書き出したいのですが、
BDAVにフォーマットを変換するコマンドラインがわかりません。どなたかわかりませんか?

====
形式:H.264TTS(X264)、PID=1011

ビットレート:CBR8Mbps

秒数:15秒

解像度:1920×1080

アスペクト比16:9

フレームレート:固定29.97

スキャン:インターレースボトムファースト

フォーマット:BDAV
====

これがコマンドラインです

ffmpeg -I input.mp4 -vcodec h264 -streamid 0:4113 -c:v libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v 8000k -minrate 8000k -maxrate 8000k -bufsize 109.7M \ -s 1920x1080 -r 30000/1001 -flags +ilme+ildct -alternate_scan 1 -top 0 out.mts

645名無しさん@お腹いっぱい。2018/05/31(木) 11:42:01.85ID:V/NbwTFC0
自己解決していません

646名無しさん@お腹いっぱい。2018/06/01(金) 12:30:21.08ID:RW77qDge0
ffmpeg -i input.m4v -c copy output.m2ts

647名無しさん@お腹いっぱい。2018/06/01(金) 19:32:08.88ID:RcLH7f/W0
細かいとこガン無視でワロタ

648名無しさん@お腹いっぱい。2018/06/01(金) 19:42:37.51ID:K86csaBM0
まずは単純なところから始めるのが定石でしょう。

649名無しさん@お腹いっぱい。2018/06/03(日) 17:28:28.24ID:N8K0zQHC0
定番のGUIプログラムがあったら教えてください

650名無しさん@お腹いっぱい。2018/06/03(日) 17:39:32.54ID:pvmCZV2h0
ラッパーはめんどくさいだけで誰でも作れるよ

651名無しさん@お腹いっぱい。2018/06/03(日) 17:41:00.54ID:N8K0zQHC0
>>650
やっぱりそうなりますか
ありがとうございました。

652名無しさん@お腹いっぱい。2018/06/03(日) 20:15:30.07ID:snESuHde0
>>639
ありがとうございます。
仕事が忙しく、試すことができなかったのですが
いま、試したところうまくいきました。

あと、できれば、
12 sec
というような表示や
2m23s
のような表記も出力できるようにしたいのですが
どのようにすれば良いですか?
eifのフォーマットに関して検索して調べてみたのですが
公式ページも含めて解説ページが見つかりませんでした。
どこに書かれてありますでしょうか?
 

653名無しさん@お腹いっぱい。2018/06/03(日) 23:05:53.13ID:l1wsIHD30
>652
ttps://ffmpeg.org/ffmpeg-filters.html#Text-expansion
The first argument is the expression to be evaluated, just as for the expr function. The second argument specifies the output format. Allowed values are ‘x’, ‘X’, ‘d’ and ‘u’.
ttps://ffmpeg.org/ffmpeg-utils.html#Expression-Evaluation
フォーマット指定がよく分からなかったので力業で
12 sec
text='%{eif\:t\:d} sec'
2m23s
text='%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s'

654名無しさん@お腹いっぱい。2018/06/07(木) 22:08:54.11ID:9TmntrtP0
>>653
ありがとうございます。
うまくいきました。
重ね重ね申し訳ないのですが

2m23s
text='%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s'

の方で、このコードだと
60秒未満の場合であっても
0m24s
のように表示されてしまいます。
60秒未満だと
24s
60秒以上だと
1m32
のような表記にしたいのですが
可能でしょうか?
if文のようなものは入れられるのでしょうか?

655名無しさん@お腹いっぱい。2018/06/07(木) 23:51:16.36ID:oSXh1pMJ0
むりむり

656名無しさん@お腹いっぱい。2018/06/08(金) 21:25:49.58ID:jOXaNR6X0
タイムライン編集を使って最初の60秒を非表示にすればできるが
分と秒が別フィルタになるので座標指定正しくしないとずれる
text='%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s':enable='gte(t,60)'

657名無しさん@お腹いっぱい。2018/06/10(日) 10:31:08.64ID:WLun0EjD0
>>656
ありがとうございます。
試してみたのですが
文字が表示されないのですが・・・・
 

658名無しさん@お腹いっぱい。2018/06/10(日) 13:25:40.50ID:a0GQnQWS0
>最初の60秒を非表示
タイムライン編集で60秒たつとフィルタが有効になる
>分と秒が別フィルタになるので座標指定正しくしないとずれる
drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:trunc(t/60)\:d}m':enable='gte(t,60)',
drawtext=x=42:fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:mod(t\,60)\:d}s'
コマンド例
ffmpeg -r 50 -i input -vf setpts=PTS*2,"drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:trunc(t/60)\:d}m':enable='gte(t,60)',
drawtext=x=42:fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{eif\:mod(t\,60)\:d}s'",setpts=PTS/2 out.mp4

659名無しさん@お腹いっぱい。2018/06/10(日) 14:19:30.76ID:WLun0EjD0
>>658
しょへええ、うまくいきました
ありがとうございます。

詳しいお方なので、もう一つ質問してもよろしいですか?

30fpsの動画を倍速再生したい場合
-iの前に
-r 60
のように、元の動画のfps2倍した数値を入れると
うまくいきました。
もし毎回30fpsと決まっていたら良いですが
そうでない場合、予めffprobeなどで動画のfpsを読み込んでから
その読み込んだfpsの二倍するようにするコードを書いています。
ただ、あまりエレガントではないのですが
-r PTS*2
のように、一つのコードだけで完結したいのですが
そのようなことは可能でしょうか?
 

660名無しさん@お腹いっぱい。2018/06/10(日) 21:14:56.81ID:a0GQnQWS0
たぶん出来ないと思います

661名無しさん@お腹いっぱい。2018/06/11(月) 10:08:15.64ID:BL6N4V1J0
>>660

ありがとうございます。
やはりそうでしたか・・・


ちなみにあと、
02m06s
のように数値を二桁表示にしたい場合、
>>658で教えていただいた通り、
enableで分岐して
数値の前にゼロを付けるしかないですか?
よろしくお願いいたします。

662名無しさん@お腹いっぱい。2018/06/11(月) 22:37:27.87ID:w+RoA0390
text='%{eif\:trunc(t/600)\:d}%{eif\:trunc(t/60)\:d}m%{eif\:mod(t\,60)\:d}s'

663名無しさん@お腹いっぱい。2018/06/11(月) 23:16:49.77ID:BL6N4V1J0
>>662
ありがとうございます。
そのままのコードでは
00m2s
のようになってうまくいきませんでしたが、
自分で工夫することでうまくいきました。

しかし、やりたいことはこんな単純なことなのに
ここまで複雑な数式コードになるとは思いませんでした・・・
 

664名無しさん@お腹いっぱい。2018/06/13(水) 21:41:07.58ID:W23TVQ+/0
重ね重ねありがとうございます。
あと、ちなみに
drawtextで
https://cdn-images-1.medium.com/max/500/1*gG2v3ukvYEtI7uLx1-5pQQ.jpeg

この画像みたいに白い文字列の周りに黒い影を付けたいのですが
可能でしょうか?

https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
オプションを見てみると
shadowcolorというものがあるので
shadowcolor=blackと指定してみたのですが
影が表示されないのですが
どのようにしたら良いですか?
shadowxやshadowyも使ってみたのですが
このオプションを使用すると文字列が表示されなくなるのですが・・・

一体どうすれば良いですか?
 

665名無しさん@お腹いっぱい。2018/06/14(木) 16:54:35.51ID:IJ+mdb6c0
誰かlibvmafが有効になったffmpegのバイナリをアップしてくれませんか
>>515のビルドスクリプトを使っても何故かVMAF算出時にクラッシュするバイナリしか出来なくて困ってます

666名無しさん@お腹いっぱい。2018/06/14(木) 21:37:48.80ID:GAYvCe4k0
shadowcolor はテキストの影の色なので完全に縁取り(影の大きさが違うから)は出来ない
ffplay -f lavfi -i color=888888,drawtext=fontsize=30:shadowcolor=black:shadowx=2:shadowy=3:fontcolor=white:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='aiueo'

667名無しさん@お腹いっぱい。2018/06/14(木) 21:56:04.83ID:fOnrRRVm0
>>666
ありがとうございます。
そうでしたか
提示してくださったコードは何のコードでしょうか?
私の環境だと
shadowx=2:shadowy=3
を使うと文字が表示されなくなるのですが・・・

668名無しさん@お腹いっぱい。2018/06/14(木) 23:13:40.45ID:GAYvCe4k0
右に2ピクセル、下に3ピクセル、shadowcolorで指定した色を
text, textfile で指定したテキストの背景に影を付ける
ttp://imepic.jp/20180614/835370

669名無しさん@お腹いっぱい。2018/06/17(日) 13:07:05.22ID:Vl3xRCV+0
>>664
縁取りはborderwとbordercolorでできる

670名無しさん@お腹いっぱい。2018/06/17(日) 20:41:52.66ID:/bvXmRwA0
>>669
出来ました
ありがとうございます。

新着レスの表示
レスを投稿する