◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

ffmpegならこちらへ 7 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/software/1659701141/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1名無しさん@お腹いっぱい。2022/08/05(金) 21:05:41.29ID:EVyx8BnW0
公式サイト
http://ffmpeg.org/

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

前スレ
ffmpegならこちらへ 6
http://2chb.net/r/software/1629006665/

2名無しさん@お腹いっぱい。2022/08/05(金) 21:05:58.83ID:0av5rW650
ffmpegで使うコマンドは、オプションとフィルターが存在する。
これらが一つの行に混在して使われるため、両方に目を通さなければならない。
日本語の記事が無いものもあるので、機械翻訳を使うなどをして、ある程度自力で英語を読み取らなければならない場合もある。

ffmpegで使用できるOptions https://ffmpeg.org/ffmpeg.html#Options
ffmpegで使用できるfilters https://ffmpeg.org/ffmpeg-filters.html
ffmpeg Documentation (フルバージョン) https://www.ffmpeg.org/ffmpeg-all.html


散らばっている古い記事の中には、現在のffmpegのバージョンでは廃止されたオプションも存在する。
それらのオプションは実行しようとしてもエラーが返されるだけで、単純にエラーの原因の一つになるので
古い記事をコピペなどで流用する場合は、既に廃止されたオプションが含まれていないかどうかを注意する必要がある。

3名無しさん@お腹いっぱい。2022/08/05(金) 21:06:08.77ID:eHsqhgJ60
ちょっと突っ込んだ使い方などの情報(各種ガイド、FAQ)
https://trac.ffmpeg.org/wiki


FFmpeg ドキュメント(日本語訳)
古いし、avconvの説明も混じっているが、新しいものを使わなければ今でも有用
http://fixedpoint.jp/ffmpeg/ffmpeg.html

日本語による基本的な使い方の解説
http://tech.ckme.co.jp/ffmpeg.shtml

日本語による新しいフィルタなどの情報
http://nico-lab.net/category/ffmpeg/


x264とffmpegのオプション対応の解説
https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping

4名無しさん@お腹いっぱい。2022/08/05(金) 21:06:18.78ID:G+OTKcyd0
>>2
ffmpegのドキュメントに関しては、
ffmpeg Documentation (統合ドキュメント-フルバージョン) https://www.ffmpeg.org/ffmpeg-all.html
これのみで全部の項目があるので、キーワード検索をする場合はこちらを使うと見つかる可能性が高くなる

以下、その一部の例

基本オプション https://ffmpeg.org/ffmpeg-all.html#Options

各コンポーネントに関するドキュメント(個別ドキュメントではなく、統合ドキュメント内の各項目の例)
Utilities                       https://ffmpeg.org/ffmpeg-all.html#Syntax
Video scaling and pixel format converter   https://ffmpeg.org/ffmpeg-all.html#Scaler-Options
Audio resampler                  https://ffmpeg.org/ffmpeg-all.html#Resampler-Options
Encoders and decoders (codecs)        https://ffmpeg.org/ffmpeg-all.html#Codec-Options
Bitstream filters                  https://ffmpeg.org/ffmpeg-all.html#Bitstream-Filters
Muxers and demuxers (formats)        https://ffmpeg.org/ffmpeg-all.html#Format-Options
Protocols                      https://ffmpeg.org/ffmpeg-all.html#Protocol-Options
Input and output devices            https://ffmpeg.org/ffmpeg-all.html#Device-Options
Filters                        https://ffmpeg.org/ffmpeg-all.html#Filtering-Introduction

ライブラリやAPIその他の個別ドキュメント等の詳細(リンク等)
https://ffmpeg.org/documentation.html

5名無しさん@お腹いっぱい。2022/08/06(土) 08:47:05.91ID:n/eekTeN0

6名無しさん@お腹いっぱい。2022/08/20(土) 17:41:45.43ID:V4wT6xqW0
階層にフォルダ分けされた音楽ファイルをノーマライズして再変換したいのですが、親ディレクトリ丸ごとバッチファイルにD&Dして処理したいです
以下のように記述してみたのですが、No such file or directoryのエラーが出てしまいます
どう改良すれば良いか、どなたかご教示下さい

@echo off
for %%f in (%*) do (
ffmpeg -i "%%~f" -filter:a loudnorm -c:v copy -c:a libfdk_aac -b:a 320k -ar 44100 "%%~dpnf_fixed.m4a"
del "%%~f" )
pause

7名無しさん@お腹いっぱい。2022/08/20(土) 18:06:44.02ID:nz5iMT2q0
ファイルをD&Dして望む結果を得られていたら、ffmpegのコマンドは問題なし。
ディレクトリをD&Dしてエラーになるのは、ファイルを検索するためのforが不足してると思う。

8名無しさん@お腹いっぱい。2022/08/20(土) 19:25:06.02ID:V4wT6xqW0
>>7
ファイルを直接D&Dだと、複数ファイルでも正常に変換できます
バッチファイルの知識が乏しいので、検索して調べてもこれ以上の改善方法がわかりません
スレ違いかもしれませんが、どなたかよろしくお願いします

9名無しさん@お腹いっぱい。2022/08/20(土) 21:28:06.05ID:T5z2R1Xo0
for /R "%1" %%f in (*.*) do (
とか

10名無しさん@お腹いっぱい。2022/08/20(土) 21:38:04.67ID:brCKAyyV0

1162022/08/21(日) 01:00:23.72ID:P4aR419b0
>>10
ご丁寧にありがとうございます!
無事に希望通りの動作をさせることができました
本当に感謝です

12名無しさん@お腹いっぱい。2022/08/27(土) 18:23:58.05ID:yOrj2hKt0
動画ファイルを -vcodec copy -acodec copy で複製するとき
mp4だとハッシュ値が常に変わらないのに対してwebmだと毎回変わるんですが
この挙動の差はなんでしょうか?

13名無しさん@お腹いっぱい。2022/08/27(土) 23:25:52.65ID:wUASBNkx0
>>12
mkv(webmはmkvのサブセット)は原則として一意なIDが埋め込まれる
さらに、各トラックにも同様に一意なIDが識別に必須なものとして埋め込まれる
だから原則として同じハッシュにはならないよ

14名無しさん@お腹いっぱい。2022/08/28(日) 05:47:16.33ID:LsNSts+Y0
>>13
ありがとうございます

15名無しさん@お腹いっぱい。2022/09/05(月) 22:15:41.79ID:yxZyrrSm0
ffmpegで動画からpng形式で抽出した画像と、
ffmpeg以外(DavinciやMPC-BE[madVR])から抽出した画像で
明るさが若干違うのだけど、原因や対処方法ご存知の人います?
多分transferやガンマ指定の問題だと思うのだけど

テスト動画
 

ffmpegで抜き出した場合
 ffmpeg -i hts-samp001.mp4 -vf trim=start_frame=0:end_frame=1,setpts=PTS-STARTPTS -vframes 1000 "hts-samp001.png"
 ffmpegならこちらへ 7 ->画像>3枚

 madVR等で抜き出した場合
 ffmpegならこちらへ 7 ->画像>3枚

16名無しさん@お腹いっぱい。2022/09/05(月) 22:25:14.61ID:7SG5p0gd0
レンダラを何だと…

17名無しさん@お腹いっぱい。2022/09/05(月) 23:28:27.53ID:yxZyrrSm0
DavinciやAviUtlで抜き出してもそうなるからレンダラの問題じゃなさそうです

18名無しさん@お腹いっぱい。2022/09/05(月) 23:33:48.70ID:yxZyrrSm0
Davinci・AviUtl・MadVRだと明るさは一緒で
ffmpegだけ少し暗い感じです

19名無しさん@お腹いっぱい。2022/09/07(水) 15:22:52.72ID:ixjAENMd0
もしてかしてRGBとYUVの色範囲の違いじゃね
aviutlとかはYUVソースをPC表示するためにRGB(0-255)に変換していて
ffmpegの場合はそういう処理をせずにYUV(16-235)の色階調そのまま
とか?

20名無しさん@お腹いっぱい。2022/09/07(水) 16:06:12.59ID:YqXJkldq0
俺も以前に連番PNG化したときにそんな感じのことあったな
レンジ合わせれば普通に見える

21名無しさん@お腹いっぱい。2022/09/07(水) 18:10:20.10ID:WJTyjeNI0
色空間とかごちゃごちゃしててホンマ嫌い

22名無しさん@お腹いっぱい。2022/09/07(水) 19:50:29.60ID:sZs7Whts0
>>19>>20
-vf scaleのin_rangeでlimitedとfullを変えてpng出力すると
”若干”でなくだいぶ変わるのでそういうことでもなさそうです
(out_rangeは指定しても変化なし)

23名無しさん@お腹いっぱい。2022/09/07(水) 22:10:56.63ID:oqUFzRrR0
auto_scalerがbt709 Color MatrixでYUV→RGB
そしてlimitedレンジからfullにしたのが
「ffmpegで抜き出した場合」の画像
システムガンマがBT.1886になるようにYUVのYにフィルターがかかってるのが
「madVR等で抜き出した場合」の画像

24名無しさん@お腹いっぱい。2022/09/08(木) 01:00:36.35ID:9jCtJ95i0
>>23
ありがとうございます。納得しました
頂いた情報を元に軽く調べてみましたが
ffmpeg側で合わせる方法は見当たらないようですね

25名無しさん@お腹いっぱい。2022/09/08(木) 23:29:11.76ID:q2Cnh+vc0
出来ると思うんだけど、画像へのリンクが切れてるんだよね。
>>23が正しいかどうかもわからない。
とりあえず、colorspaceフィルタでは無理だと思う。

26名無しさん@お腹いっぱい。2022/09/09(金) 02:44:29.30ID:Mdzz68+w0
動画は残ってるから再現できたぜ

27名無しさん@お腹いっぱい。2022/09/09(金) 08:25:44.52ID:pDtqG98a0
sRGBディスプレイで閲覧するとしてzscaleでtransferinをbt709、transferをiec61966-2-1にして輝度をフィルタリングすればいい
colorspaceはたしかリニア輝度にするときシーンライトにしてしまうはず。

28名無しさん@お腹いっぱい。2022/09/09(金) 08:40:11.74ID:pDtqG98a0
シーンライトはscene referredだ

29名無しさん@お腹いっぱい。2022/09/13(火) 03:41:41.45ID:5EB7q0pX0
transferの検索結果にカメラとかテレビとかの専門サイトがたくさんでてくるなあ
職業カメラマンはこんな複雑なことわかってないといけねえのか…大変だ

30名無しさん@お腹いっぱい。2022/09/13(火) 19:20:16.89ID:AtCX4aUG0
framerate30の動画を1変更したいんだけど他はそのままの条件で行きたいけど-r 1にしてもできる動画サイズが元のより大きくなってしまう。
どうしたら劣化させずにframerateだけ小さくして、ファイルサイズも小さくできますか?

31名無しさん@お腹いっぱい。2022/09/13(火) 20:46:53.33ID:KKrJu2dD0
新しめコーデック HEVC, AV1を使う
-crf を少しずつ上げる、-b:v を直接指定する

32名無しさん@お腹いっぱい。2022/09/15(木) 06:19:04.60ID:grPpNRTb0
デコードせずにはフレームレートを変換できないような動画であると仮定すると、解決策はビットレートを直接指定すること。
強制的にビットレートを下げるには-b:vを使ってね。

33名無しさん@お腹いっぱい。2022/09/15(木) 20:32:35.58ID:sdCnxl5G0
>>31,32
ありがとうございます。勉強してきます。

34名無しさん@お腹いっぱい。2022/09/22(木) 23:55:57.04ID:bvZ5x9B80
m4aのタグ編集したいんだけどpipe:0としてstdinで渡すとmp4系列は機能しないんだね・・・

35名無しさん@お腹いっぱい。2022/10/06(木) 14:39:53.64ID:yozy4LzK0
ffmpegでtiffファイルからyuvファイルを作りたいのです。

フレームレートを固定したままビットレートのみ、変更したいです。
元の動画のフレームレートが59.94なので以下のコマンドで実行しましたが、うまく行きません。
どうすればよいのでしょうか。

【コマンド】
ffmpeg -video_size 3840x2160 -r 59.94 -i a05_4K00%03d.tiff -vframes 30 -pix_fmt yuv420p -r 59.94 a05.yuv

36名無しさん@お腹いっぱい。2022/10/06(木) 15:33:57.58ID:e2X/rTrv0
続けて質問申し訳ありません。A.mp4(1分) B.mp3(2分) を結合させるとき…

ffmpeg -i A.mp4 -i B.mp3 -vcodec copy -acodec copy C.mp4

を実行すると、当然C.mp4(2分)が作成されるわけですが、A.mp4(1分)に合わせたC.mp4(1分)を作成する場合どのようにコマンドをすれば良いですか?
※A.mp4の時間は(30秒-2分)で毎ファイル異なります。

アドバイスよろしくお願いしますm(_ _)m

37名無しさん@お腹いっぱい。2022/10/06(木) 18:19:09.19ID:e2X/rTrv0
自己解決

-shortest

38名無しさん@お腹いっぱい。2022/10/07(金) 10:31:39.04ID:HYHyp6R60
scale_cudaのinterp_algo=lanczosってなんかバグってる
bicubicの方がいい

39名無しさん@お腹いっぱい。2022/10/10(月) 22:54:55.68ID:Bj8jCW/K0
MacOS使ってるんだけどlibfdk-aacってビルドした後にバイナリの実行ファイルは生成されない?
ビルドが成功したのかもわからんから不安

とりあえず
libフォルダ内
→libfdk-aac.aとlibfdk-aac.la

includeフォルダ内
→aacdecoder_lib.h等の.hファイルが6つ

生成されるのは確認できた

40名無しさん@お腹いっぱい。2022/11/04(金) 22:06:13.38ID:U/7bjjk/0
yt-dlpが早いのはffmpegの-c copyと同じコピー使ってるからかな?
でも、ようつべは開発者ツールのネットワークで検索して出てきた元webm&webaをffmpeg -i url output.mp4したら弾かれたから何かそういう技術あんのかな?

41名無しさん@お腹いっぱい。2022/11/04(金) 22:07:22.81ID:U/7bjjk/0
あ、ちなみにちゃんとrange=0-数にしてffmpeg入力しても弾かれたから

42名無しさん@お腹いっぱい。2022/11/07(月) 18:45:11.78ID:v7t8S9HG0
bgra (実際は透明部分無し)のrawvideo(24GB)をyuv420p10leのAV1に変換したく、ただHEVCやVP9など他のものも試したいと考えてます
ファイルサイズがかなり大きいのでRGB to YUVだけ終わらせた中間ファイルを残しておきたいのですが、映像コーデックをffv1で残しておけば色空間の変換以外で劣化は起きない認識で良いのでしょうか?

43名無しさん@お腹いっぱい。2022/11/09(水) 23:57:36.66ID:Mpacpztv0
あってるよ
yuv420p10leでrawvideoとffv1間の変換は可逆

44名無しさん@お腹いっぱい。2022/11/10(木) 07:45:45.95ID:tDwXq83r0
ありがとうございます!

45名無しさん@お腹いっぱい。2022/11/10(木) 09:25:39.89ID:+pIcgAqo0
フォーマットのこと全然判らんな
あれはどういう必要があって複雑なことになってるんだ

46名無しさん@お腹いっぱい。2022/11/10(木) 17:15:19.37ID:qd/x3luN0
省資源、コンポジット、アライメントの都合だね
フォーマットってのはつまりVRAMに値をどう配置するかって話だけど
得意不得意あるからフォーマットがたくさんある
MSXの画面モードはRGBやYUV(のようなもの),パックドやプレーナー、コンポジット(のようなもの)全部入りで面白いよ

47名無しさん@お腹いっぱい。2022/11/12(土) 06:16:55.21ID:bxoLcHPa0
規制が強くなったのか、専ブラでないと書き込めない

48名無しさん@お腹いっぱい。2022/11/14(月) 09:34:18.60ID:I/iilzDo0
エンコーダの性能をしらべるために動画の中で動きの激しい箇所のみをエンコードしたいのですが、
動画の中で動きが激しい場所を調べられるオプションはありますか?

49名無しさん@お腹いっぱい。2022/11/14(月) 20:29:29.55ID:pQS1kwvb0
vmafmotionフィルタか, sitiフィルタのsi

50名無しさん@お腹いっぱい。2022/11/14(月) 20:30:21.07ID:pQS1kwvb0
siじゃなくてtiのほうだった

51名無しさん@お腹いっぱい。2022/11/14(月) 21:19:20.02ID:6Q32qEHB0
エントロピーフィルタを使うシーンかとおもいや、あれはフレーム間調べないんだ

52名無しさん@お腹いっぱい。2022/11/14(月) 22:06:10.05ID:I/iilzDo0
>>49,>>51
ありがとうございます!
調べて、考えてみます。

53名無しさん@お腹いっぱい。2022/11/17(木) 02:50:10.22ID:q1Kg69KW0
単純にh.264をhevcへ変換するだけの簡単な仕事、AMD 3020eで試したら散々な目に遭った

GPUでエンコードするとブロックノイズまみれ、CPUでエンコードするとCore i5-4670の1/10程度の速度

Windowsのstatic版の最新安定版で試してみたのだが、gentooインストールバトルして最適化したらCPUエンコード速度が改善する余地あるのだろうか、それとも所詮はZenアーキテクチャの限界でハードウェア的に無理??

54名無しさん@お腹いっぱい。2022/11/17(木) 02:59:35.69ID:q1Kg69KW0
ブロックノイズはボックスブラー試してみまふ

55名無しさん@お腹いっぱい。2022/11/17(木) 08:06:58.06ID:V7wTzgUr0
その為に買ったGPUだし、GPU以外は選択肢に無いな

56532022/11/17(木) 12:15:33.62ID:q1Kg69KW0
hpの14sシリーズ最安値機を2万円台で買ったのを試しただけなので、、、

Core i5-4670機が稼働する限りはCPUエンコード、壊れたら中古で第6世代あたりの廉価デスクトップi5とか第8Core i3とか…

passmarkやcpu-monkey的にはfinal PentiumのG7400でもマルチスレッド性能は4670より上ですね

57名無しさん@お腹いっぱい。2022/11/17(木) 15:14:01.15ID:ut8ZrMWT0
誰も聞いてないのに貧乏語りするの気持ち悪いな

ガラクタいくつも並べて無駄な時間かける暇あるなら、働いてまともなPC組めば?
12400とかで安くマシなの組めるだろ

58名無しさん@お腹いっぱい。2022/11/17(木) 18:08:47.53ID:uM8UlpNl0
いきなり情報量ゼロの罵倒を始める方が闇が深いな

カルシウム足りてるか?
12世代の反りを嫌う人が居るのは理解して居るか?

同じZenならRyzen 7 1000シリーズ中古があるじゃないか

59名無しさん@お腹いっぱい。2022/11/17(木) 18:19:51.42ID:d/HUjigR0
格安ボロ買って散々な目にあっただのとw自己否定したいだけ?

60名無しさん@お腹いっぱい。2022/11/17(木) 19:07:20.04ID:FdCZVBHw0
2万円台ノートとほぼ同価格の12400挙げるのはアホ

61名無しさん@お腹いっぱい。2022/11/17(木) 20:07:44.07ID:npXDYmd70
エンコで時間使う人間が12400程度の金も出さないとか、人生いろいろケチりで損してそうだな
中古買う奴が反り気にするとかどんなブーメランだよ

62名無しさん@お腹いっぱい。2022/11/17(木) 20:17:11.89ID:xRoM3nbV0
古いPCで何かすることは否定しないけど
大して参考になる情報でもない、脈絡もなくいきなり自分語りしだす方がおっさん臭くてキツいね

63名無しさん@お腹いっぱい。2022/11/17(木) 20:56:34.37ID:Ghwc++Ue0
誰もffmpegの話をしていない

64名無しさん@お腹いっぱい。2022/11/18(金) 05:09:18.42ID:wimZPxMW0
どう見ても3020eでのエンコはネタつくりだべ
Celeron N4000とかでやるのと大差ない

65名無しさん@お腹いっぱい。2022/11/18(金) 09:08:39.50ID:eGW4OO8R0
真面目に考えて損した

66名無しさん@お腹いっぱい。2022/11/18(金) 14:18:46.16ID:+OcAjUTr0
Linux関連の板でもないのに「Gentooインストールバトル」とかキモすぎる

そもそもここffmpeg自体のフィルターやオプション、最近のコーデックが話題であってHEVCとかいまさらなんだわ
ましてやHEVCに世代合わせるかのようにボロPCしか例に出さんし

悪いこといわんからまともなエンコしたきゃ、ここ2年くらいのCPUか1650S以上のグラボ使っとけ
5600Xや11400, 12400あたりの安CPUでもHEVCなら足りる

67名無しさん@お腹いっぱい。2022/11/18(金) 14:59:27.40ID:f8D9mpxf0
CPUはここ10年のなら何でもいい
肝心なのはGPU

68名無しさん@お腹いっぱい。2022/11/18(金) 15:29:45.24ID:Govgu8G50
RocketかAlderのiGPUありなら新しいQSVあるしCPUエンコ狙えなくもないし一石二鳥だな

69名無しさん@お腹いっぱい。2022/11/18(金) 20:41:38.12ID:wimZPxMW0
遅すぎる原因、分かりました

これまでの環境でgit for Windowsのシェルで実行していたのを、同じ感覚でWSLで実行したためでした

興味深い情報の提供、感謝いたします

70名無しさん@お腹いっぱい。2022/11/18(金) 22:49:58.50ID:a2MJgMIX0
>>52 sitiフィルタの使い方を調べて動画のスコアを調べようとしたのですが、「そんなフィルターはない!」と怒られてしまいます。
何か追加でインストールが必要なのでしょうか?
それとも、入力したのがyuvファイルだったのがダメだったのでしょうか?

何か、分かる方がいらっしゃいましたら、おしえて頂けると幸いです

71名無しさん@お腹いっぱい。2022/11/19(土) 07:00:56.99ID:wohxqVmy0

72名無しさん@お腹いっぱい。2022/11/27(日) 15:11:29.53ID:hpt+1WbU0
mp4動画にチャプター情報つけてるんだけど
そのちゃごとにタイムコードを付加するというのは無理なのかな?

73名無しさん@お腹いっぱい。2022/11/28(月) 01:02:52.94ID:VB5HSDAy0
>>72
このスレの大半は無視と罵倒とマウンティングで出来ています
x264 / hevc /VP8の話題は原則禁止です

mp4とだけ書くのも禁止です
ffmpeg -i foo.mp4などと実行してVideo部分のcodecを確認してから質問してください

74名無しさん@お腹いっぱい。2022/12/03(土) 08:16:01.13ID:pWoUq+ys0
>>72
Yes, it is possible to add a timecode to each chapter in an mp4 container.

To do this, you can use the -timecode option in FFmpeg. This option allows you to specify a timecode for each chapter in the mp4 container.

Here is an example command that you can use to add timecodes to each chapter in an mp4 container:

ffmpeg -i input.mp4 -map 0 -c copy -metadata:s:t:0 timecode="00:00:00:00" -timecode_frame_start 0 output.mp4
In this command, the -timecode option is used to specify a timecode for each chapter in the mp4 container. The timecode is specified in the format HH:MM:SS:FF, where HH represents the hours, MM represents the minutes, SS represents the seconds, and FF represents the frames.

In this example, the timecode for each chapter is set to 00:00:00:00, which represents the start of the video. You can adjust this timecode as needed to specify different timecodes for each chapter.

After running this command, the output mp4 container will include timecodes for each chapter, which you can use to navigate the video at specific points in time.

75名無しさん@お腹いっぱい。2022/12/03(土) 12:22:30.07ID:jcglrjSt0
ところで、mp4(m4a含む)でチャプターを付ける時
一番お気楽な方法ってなんなんだろう
定番では Drax、
個人的にわかりやすいのは mkvtoolnixでMKV出力→ffmpegでコンテナ変換だと思うけど、
前者はD'nDができないし、後者はVBRフラグが引き継がれない(ffmpegのいわば仕様)

76名無しさん@お腹いっぱい。2022/12/03(土) 15:24:42.85ID:tD70AyOp0
気楽の定義がわからんけど、CUIのツールを組み合わせて
テキストベースでpythonとか使いながらやるのが一番楽な筈

77名無しさん@お腹いっぱい。2022/12/03(土) 15:51:26.07ID:ZLRdDl1d0
最近のffmpeg(snapshot2022-12-02)って、昔と比べてエンコード速度が速くなっている代わり
にVAAPI(Linuxです)使用時でもCPUを積極的に使用するように仕様が変わったんですか?

昔と言っても(2022-02-02)のsnapshotなんですが、Core i7 7700Kのマシンで、h264_vaapiで地上波m2ts
の変換で、6倍速ぐらいの速度でCPU周波数はIntel P-stateのpowersaveで1.1GHzぐらいで、task managerの使用率も1%ぐらいだったんですが、
2022-12-02版だと13倍速でる代わりに同じくpowersaveで3.2GHzぐらい食って、task managerの使用率も8%ぐらいでした。
何か変更でもアナウンスされてましたっけ?

78752022/12/03(土) 16:48:01.56ID:jcglrjSt0
>>76
要するに、他のメタデータを考えることなく、
チャプタの時間を指定するだけ(チャプタ名は数字順)で済むような方法という想定だったんだけど、
ググってみたら、pythonのヘルパースクリプトがあるみたいだね
pythonは使えるので、参考にして自分で書いちゃったほうが楽なのかな

mpvプレーヤーには、該当箇所でキーを押してmkvチャプタ(mkvmergeで使われるxml形式)を出力するというプラグインがあるんだけど、
同様にffmpeg用(FFMETADATA)ファイルを出力するようなものがあるといいと思った
やはり、映像や音声を確認しながらその場でチャプタを指定できると便利だ

79名無しさん@お腹いっぱい。2022/12/03(土) 17:14:50.24ID:tD70AyOp0
普段は再生にmpc-hcを使ってて、
ctrl-Gが指定時間にジャンプする機能だけど、
その時に現在の時間が表示されてるので、編集するつもりでctrl-A ctrl-Cでコピーしてくると
04:03.891
こんなフォーマットでクリップボードに入る
大抵はこれで足りる

80名無しさん@お腹いっぱい。2022/12/03(土) 18:02:27.62ID:jcglrjSt0
>>79
そのあたりは、mpvのプラグインスクリプトのほうが楽かな
copyTime.luaっていうのがあって、これだと "Ctrl + C" だけで同じhh:mm:ss.fff形式のものが拾える
音声で厳密に出したいときはAudacityで波形を見ながらやることもある

81名無しさん@お腹いっぱい。2022/12/03(土) 19:25:59.40ID:qgv9YMGz0
>>74
ありがとう

82名無しさん@お腹いっぱい。2022/12/04(日) 19:12:20.70ID:fIgRbBjn0
>>81
ごめん、いろいろ悪ふざけが過ぎた
ただ、一応俺の目であってるか確認したけど、このレス自体はChatGPTに答えさせたやつなんだ

83532022/12/05(月) 12:19:39.60ID:E/pfDvK+0
>>53
ブロックノイズまみれになる原因が分かりました。

CPUエンコードと異なり -maxrateが効かないのを知らずに -b:v 指定だけが有効になってしまい、品質が派手に落ちたのが原因でした。

-qmaxで適切な値、例えば『少しくらいの劣化許容』なら -qmax 25 などと指定すれば、おおむね期待通りの結果が得られました。

質問と罵倒だけで無価値なログが残るのを避けるため報告します。
参考:
https://nico-lab.net/installing_amd-vce_with_ffmpeg/#i-2

84名無しさん@お腹いっぱい。2022/12/05(月) 12:51:05.65ID:uQn9iJkq0
vspipe -c y4m "test7.vpy" - |\
ffmpeg -y -i - -pix_fmt nv12 -c:v h264_amf -quality quality -rc vbr_peak -qmin 20 -qmax 26 -g 120 -maxrate 8M -b:v 2.5M "x264.mkv"

これで使ってる、まあエンコードはしないけどね

-c:v hevc_amf -quality quality -min_qp_i 20 -max_qp_i 28 -min_qp_p 20 -max_qp_p 28 -header_insertion_mode idr -g 120 -rc vbr_peak -bf 1 -vbaq false -maxrate 8M -b:v 1.5M

85名無しさん@お腹いっぱい。2023/01/03(火) 04:54:43.41ID:zIiXdB410
FFmpegで指定できる伝達特性をまとめていて気がついたのですが。
zscaleフィルターsmpte240mのガンマと逆ガンマ補正の計算式が逆に実装されているのではないでしょうか?
実際にFFmpegを使用して映像にフィルタを適用し、試したわけではありません。

86名無しさん@お腹いっぱい。2023/01/03(火) 05:18:30.99ID:zIiXdB410
ソースコードで言えば、この部分がおそらく間違っているのだろうと思いました。プログラムが読めないので確信はないのですが。
https://github.com/sekrit-twc/zimg/blob/b413cea0a39ee14db2bbb82d5a0805a9337e7a39/src/zimg/colorspace/gamma.cpp#L128-L150

87名無しさん@お腹いっぱい。2023/01/03(火) 08:44:49.99ID:Ttl3j4JF0
SMPTE_240M_ALPHA = 1.1115
SMPTE_240M_BETA = 0.0228

光(L)、信号(V)とすると、
smpte_240m_oetf(float V)はこんな処理
1. Vが0以下ならV = 0とみなしてL = 0 (終わり)
2. Vが0.0912 (※4xBETA) より小さいなら
L = V ÷ 4 (終わり)
3. Vがそれ以上なら
L = { ( V + 0.1115 ) ÷ 1.1115 } の (1 ÷ 0.45)乗

smpte_240m_inverse_oetf(float L)はこんな処理
1. Lが0以下ならL = 0とみなしてV = 0 (終わり)
2. Lが0.0228より小さいなら
V = L x 4 (終わり)
3. Lがそれ以上なら
V = 1.1115 x ( Lの0.45乗 ) - 0.1115

88名無しさん@お腹いっぱい。2023/01/03(火) 08:48:27.99ID:Ttl3j4JF0
https://www.jstage.jst.go.jp/article/itej1978/45/11/45_11_1342/_pdf

このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
Lを使うべきところでVを使ってるとか、その逆とか

89名無しさん@お腹いっぱい。2023/01/05(木) 00:25:07.91ID:7mKKIxKi0
返信ありがとうございます。私もそのPDFを読んでみました。
>このPDF見ながらソース読んでみたけど、処理自体は正しく書かれてるように思える
>あとはこれを使ってる場所が正しくLとVを使ってるかどうかじゃないかなあ
>Lを使うべきところでVを使ってるとか、その逆とか
はい、そう思います。
同じソースコードの330行目を見ると、OETFの引数にVを、EOTFの引数にLを入力していませんか。
もしそうなら、LとVを逆に扱っていないでしょうか?

90名無しさん@お腹いっぱい。2023/01/05(木) 00:46:28.28ID:7mKKIxKi0
>>89は予想です。
func.to_linearやfunc.to_gammaって書いてあるのを見て思っただけで、全体の処理の流れを理解していません。
>>87のプログラムの説明助かりました!

91名無しさん@お腹いっぱい。2023/01/05(木) 10:37:14.14ID:QEuK8P+m0
>>90
330付近は300から始まるブロックだけど、select_transfer_functionって名前の通りでその処理(リニア化、ガンマ化)をするためにどの計算方法を使うかを選んでいる

リニア化はシーン参照(入力参照)なら上カーブになる240m_inverse、そうじゃない(出力参照)なら下カーブになるRec.1886eotfで正解じゃない?
勘違いしてるかな
いや、出力参照でRec.1886を使ってるのが正しいのかと言われると断言できないけど

92名無しさん@お腹いっぱい。2023/01/05(木) 20:49:46.37ID:7mKKIxKi0
リニア化は人間の視覚特性に合わせて暗部の圧縮をするので下カーブになると思います。
ただ、どうして出力参照でRec.1886 EOTFを適用するんでしょう。
PDFの記述と食い違いがあります。(今気づきましたが、1991年の記事なんですね)
Rec.1886はCRTの模倣なので、再生時の逆ガンマ補正がもしCRTだけ(パススルー)だったら理にかなっています。
ネットで調べてもよくわからないです。
とりあえずいまは式をMarkdownへ書き起こす作業をしています。

93名無しさん@お腹いっぱい。2023/01/05(木) 22:32:23.12ID:7mKKIxKi0
https://www.desmos.com/calculator/6pe790alex
smpte_240m_inverse_oetfとrec_1886_eotfをプロットしてみました。
https://imgur.com/m4LvLc6
この画像のようにシーン参照のTFと出力参照のTFを組み合わせるのが一般的?なんですかね。
zscaleのRec.709の実装が正しいとすると
シーン参照のTFと出力参照のTFはsmpte_240m_inverse_oetfとrec_1886_eotfだと思います。
うーん。

94名無しさん@お腹いっぱい。2023/01/05(木) 22:39:04.19ID:7mKKIxKi0
書き起こした式です。
https://hackmd.io/@ZxGphnYi-5Xv/S1O0xX49j

95名無しさん@お腹いっぱい。2023/01/05(木) 23:36:35.76ID:7mKKIxKi0
こちらの画像がより正確かもしれません。
https://imgur.com/4dAy77Y
Scene-referredについて追記した版です。
https://hackmd.io/@ZxGphnYi-5Xv/SJGAX845j
Rec.709も加えました
https://www.geogebra.org/m/cnudez4f

96名無しさん@お腹いっぱい。2023/01/05(木) 23:49:13.62ID:7mKKIxKi0
BT470_MとREC_470_BGとLOG_100とLOG_316の式がH.273と違いますね

97名無しさん@お腹いっぱい。2023/01/05(木) 23:59:42.83ID:7mKKIxKi0
すみません>>96解決しました。
BT470_MとREC_470_BGは、OETFとinverse OETF、func.to_linearとfunc.to_gammaがそれぞれ逆ですが、結果的に処理は正しく
LOG_100とLOG_316は、式の区間が調整されてますが、計算結果は変わらないようです。

98名無しさん@お腹いっぱい。2023/01/08(日) 17:49:44.77ID:dgAHe8aX0
FFmpegのzscaleでST240に変換しようとしましたがエラーが出て処理が進みません
コマンドです。
ffmpeg -y -i testimage.jpg -filter_complex "zscale=rangein=full:primariesin=709:transferin=709:matrixin=470bg:range=full:primaries=709:transfer=7:matrix=470bg" -f image2 -qmin 1 -q 1 -update 1 240m.jpg
7がST240のはずですが…
https://hackmd.io/vaTZN7iBTI-26yxQVd72TQ?view#Rec-ITU-R-BT709-66

99名無しさん@お腹いっぱい。2023/01/08(日) 17:51:08.97ID:dgAHe8aX0
テストで使った画像です。
https://imgur.com/a/NV9r62c

100名無しさん@お腹いっぱい。2023/01/08(日) 22:59:52.19ID:dgAHe8aX0
smpte240mをFFmpegのzscaleでテストするという目的はまだ達成できていませんが、試行錯誤の結果を報告します。
>>98でFFmpeg5.1を使っていました。
FFmpeg5.1とmasterの間で、FFmpeg/libavfilter/vf_zscale.cが変更されているようです。
コミットメッセージによると、smpte240m transferオプションの追加を含む変更とのことなので、2023年1月4日の最新ビルドで同じコマンドを試してみました。
しかし、>>98と同じ結果、つまりFFmpeg5.1と同じエラーが発生しました。
以下はそのエラーの出力です。

101名無しさん@お腹いっぱい。2023/01/08(日) 23:02:48.73ID:dgAHe8aX0
ffmpeg version 2023-01-04-git-4a80db5fc2-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
(文字数制限のためconfigurationを中略)
libavutil 57. 43.100 / 57. 43.100
libavcodec 59. 56.100 / 59. 56.100
libavformat 59. 34.102 / 59. 34.102
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 53.100 / 8. 53.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
Input #0, image2, from 'testimage.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 21988 kb/s
Stream #0:0: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 320x240 [SAR 72:72 DAR 4:3], 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 (mjpeg) -> zscale:default
zscale:default -> Stream #0:0 (mjpeg)
Press [q] to stop, [?] for help
Assertion failed: (!path.empty()) && ("empty path"), file ../src/zimg/colorspace/colorspace.cpp, line 33
Assertion failed: (!path.empty()) && ("empty path"), file ../src/zimg/colorspace/colorspace.cpp, line 33
Assertion failed: (!path.empty()) && ("empty path"), file ../src/zimg/colorspace/colorspace.cpp, line 33

102名無しさん@お腹いっぱい。2023/01/08(日) 23:09:47.05ID:dgAHe8aX0
zscaleが対応していない伝達特性reserved、bt1361、smpte428とは異なり、FFmpegは数秒間停止した後に終了するような動作をします。
709 1
bt709 1
bt470m 4
bt470bg 5
smpte170m 6
601 6
linear 8
linear 8
log100 9
log316 10
iec61966-2-4 11
iec61966-2-1 13
2020_10 14
bt2020-10 14
bt2020-12 15
2020_12 15
smpte2084 16
arib-std-b67 18
では変換に成功しました。

103名無しさん@お腹いっぱい。2023/01/13(金) 22:40:17.47ID:TRrhIozd0
書けた!

104名無しさん@お腹いっぱい。2023/01/14(土) 19:01:38.04ID:hBwrxSa70
規制解除願う

105名無しさん@お腹いっぱい。2023/01/18(水) 20:05:37.97ID:imvRxbLL0
規制された?

106名無しさん@お腹いっぱい。2023/01/21(土) 18:03:30.03ID:ctgFreAT0
あなたはこのスレッドにはもう書けません。

107名無しさん@お腹いっぱい。2023/01/22(日) 12:25:10.23ID:A/H5B6HI0
マジか

108名無しさん@お腹いっぱい。2023/01/22(日) 18:23:44.45ID:XUyiU5Rj0
TEST

109名無しさん@お腹いっぱい。2023/01/22(日) 19:42:04.14ID:vglLNyZU0
てすてす

110名無しさん@お腹いっぱい。2023/01/25(水) 02:34:56.04ID:YfHvOxpR0
あなたはこのスレッドにはもう書けません。

111名無しさん@お腹いっぱい。2023/01/31(火) 15:31:36.35ID:/iJY7FYD0
ソースにチャプターが無い時に、先頭にだけチャプターを付ける、みたいなことはできる?
その後、mkvmergeで結合する時に面倒が無い

112名無しさん@お腹いっぱい。2023/01/31(火) 16:13:56.99ID:CxIQq1JO0
ffprobeなどで調べたらいいんじゃね。チャプター

113名無しさん@お腹いっぱい。2023/01/31(火) 19:53:18.75ID:5YX2LrDQ0
先頭にチャプターひとつって、なんかメリットあるの?
プレーヤーの動作も変わらないような

114名無しさん@お腹いっぱい。2023/01/31(火) 21:20:50.86ID:/iJY7FYD0
mkvmergeで各ファイルの先頭にチャプターを付けることもできるけど、
既に付いてるところにさらに付けると壊れるんだよな
だから、動画には全部チャプターが付いているものとして、mkvmergeでは何もしないのが安全

115名無しさん@お腹いっぱい。2023/01/31(火) 21:52:24.47ID:5YX2LrDQ0
>>114
壊れるんじゃなくて、別のチャプターセットが作られて、そちらが優先されるんじゃなかったっけ?

116名無しさん@お腹いっぱい。2023/01/31(火) 22:15:06.93ID:/iJY7FYD0
チャプター4つとチャプター2つの動画をチャプター生成付きでマージすると、
チャプター8つの動画になって、チャプター6に飛ぼうとすると次のファイルとかになる


lud20230203031022
このスレへの固定リンク: http://5chb.net/r/software/1659701141/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ffmpegならこちらへ 7 ->画像>3枚 」を見た人も見ています:
ffmpegならこちらへ 5
ffmpegならこちらへ 3
ffmpegならこちらへ 6
ffmpegならこちらへ 4
ffmpegならこちらへ
今でもFFmpeg使ってる人っているの?
FFmpegをビルドしていたzeranoeが閉鎖
ffmpegのビルド配布サイト、今日閉鎖
エンコードソフト ffmpeg のスレ
とりあえずFFmpeg使っとけばなんとかなる説
XboxLiveGoldからの変換で今なら話題のゲームパスultimate36ヶ月が¥15100! 【PC&新規OK】
XboxLiveGold変換キャンペーンで今ならゲーパスultimate36ヶ月が\15100! 【PC&新規OK】
【ゲーム三昧】XboxLiveGoldからの変換で今ならゲーパスultimate36ヶ月が¥15100! 【PC&新規OK】
製薬、卸の営業への苦情はこちらへ
お金欲しい人はこちらへ
#東口純 への意見はこちらへ
世界の安売り情報はこちらへ
仙台住むならどこらへんがいいの?
スレ立てるまでもない猫の質問はこちらへ 2
田原俊彦の紅白出場反対意見はこちらへ
スレ立てるまでもない猫の質問はこちらへ 14
スレ立てるまでもない猫の質問はこちらへ16
スレ立てるまでもない猫の質問はこちらへ 4
スレ立てるまでもない猫の質問はこちらへ
スレ立てるまでもない猫の質問はこちらへ 13
スレ立てるまでもない猫の質問はこちらへ 14
スレ立てるまでもない猫の質問はこちらへ 11
17924 まともなジャニ話したい人はこちらへ
スレ立てるまでもない猫の質問はこちらへ
スレ立てるまでもない猫の質問はこちらへ
スレ立てるまでもない猫の質問はこちらへ 3
ティップネス南行徳 痴漢GGYの苦情はこちらへ
★スレ立てるまでもない犬の質問はこちらへPart117
スレ立てるまでもない猫の質問はこちらへ その4
スレ立てるまでもない猫の質問はこちらへ その2
スレ立てるまでもない猫の質問はこちらへ その3
推しのスキャンダルに疲れた方はこちらへどうぞ
★スレ立てるまでもない犬の質問はこちらへPart118
★スレ立てるまでもない犬の質問はこちらへPart115
脱喪しました!喪女板最後の書き込みはこちらへ
スレ立てるまでもない猫の質問はこちらへ 12 [無断転載禁止]
スレ立てるまでもない猫の質問はこちらへ 8
スレ立てるまでもない猫の質問はこちらへ 4
スレ立てるまでもない猫の質問はこちらへ その7
★スレ立てるまでもない犬の質問はこちらへPart111
岡山大学病院患者支援センターへのご意見はこちらへ
スレ立てるまでもない猫の質問はこちらへ☆ミpart83
【プリコネ】愚痴コネ【不満はこちらへ】
【Twitterに】傾奇者たちの雑談スレ【疲れたらこちらへ】
【BIGXも】アルパイン ナビ・オーディオ Part8【こちらへ】 
★スレ立てるまでもない犬の質問はこちらへPart114
スレ立てるまでもない猫の質問はこちらへ 2
スレ立てるまでもない猫の質問はこちらへ 2
【BIGXも】アルパイン ナビ・オーディオ Part3【こちらへ】
2062年から来た未来人さん、こちらへどうぞ [無断転載禁止]
【BIGXも】アルパイン ナビ・オーディオ Part4【こちらへ】 
また規制かかったんでVIPからこちらへお邪魔します
【お止め組。】お止め処理議論スレッド 18【苦情はこちらへ】
【急騰】今買えばいい株18114【雑魚はこちらへ】
★スレ立てるまでもない犬の質問はこちらへPart122
★スレ立てるまでもない犬の質問はこちらへPart110
★スレ立てるまでもない犬の質問はこちらへPart113
★スレ立てるまでもない犬の質問はこちらへPart115
★スレ立てるまでもない犬の質問はこちらへPart112
13:12:26 up 2 days, 14:15, 0 users, load average: 11.22, 9.47, 9.65

in 2.0980048179626 sec @2.0980048179626@0b7 on 011603