さまざまな音声・動画形式に対応しているマルチメディアコンバータ、及びライブラリ群。 ライセンスはLGPL。c99で書かれており、libavutil、libavformat、libavdevice、libavcodec、libavfilter、libpostproc、libswscaleなどのライブラリを含む。これらのライブラリはmplayer、VLC、ffdshow、avidemuxなどの様々なマルチメディアプログラムで使われている。
ある日のことでした。いつのもように $ yay -Syyu からインストールしますか?にYesで答えたら おお、アップデートに失敗したぜ。 別々にインストールを試してみたら、どうやらffmpeg周りが良くないようで。 $ yay -S extra/vid.stab Sync Explicit (1): vid.stab 依存関係を解決しています... 衝突するパッケージがないか確認しています... エラー: 処理の準備に失敗しました (依存関係を解決できませんでした) :: vid.stab (1.1.1-1) をインストールすると 'libvidstab.so=1.1-64' が破壊され f…
準備 zsh デフォルトで入ってると思う %echo $SHELL /bin/zsh commnadline tool導入 xcode-select --install ここからdmgを落としてもOKらしい developer.apple.com homebrew導入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" docs.brew.sh % brew -v Homebrew 4.0.9 ffmpeg導入 brew install ffmpeg …
GitHubのプロフィールにアニメーション画像を載せたいなと思いFFmpegで動画を変換しました。 ブラウザで表示できるアニメーション画像だと次の3種類ぐらいかなと思います。(ほかにもありそうだけど。) アニメーションGIF 3つの中で一番古くから使われているであろうフォーマット。 超シンプルにパラパラ漫画の要領でアニメーションさせる。 アニメーションPNG Mozillaが頑張って普及させようとして頑張ったけど結局普及しなかったフォーマット。 PNGを拡張して作られてるとのこと。 扱ったことないからあんまり知らない。。 アニメーションWebP JpegやPNGよりもファイルサイズが小さくなる…
ヘンな動画があって…要は音ズレなんだが、尺が1時間ちょい。どうも動画部分が元は29.97fpsだったのを30fpsに単純変換して(尺が短くなる)、それを尺はそのままで29.97fpsに変換して、音声は元のままのを使っている。だから終わりの方で音が3秒ほどズレる。 これを修正するには、動画部分を(29.97fps÷1.001≒)29.94fpsに単純変換して尺を延ばす必要がある。 ついでの動画のサイズを3倍に拡大、lanczos + accurate_rnd フィルタをかけたい。 これやるのに、まず XMedia Recode で動画本体と音声部分とを分離。 www.gigafree.net こ…
画像や動画を扱うサービスを開発していると、ダミーのテスト画像や動画が大量に必要になることってありますよね! 巷にはダミー画像を生成するサービスは複数あるのですが、動画の方は見当たりませんでした。 調べてみるとimagemagickで静止画を作成して、それをffmpegで動画にできるようなのでBashスクリプトで作ってみました。 スクリプトの紹介 Generate a dummy video or an image on macOS · GitHub このスクリプトは動画と画像の両方を作成できます。 実際にスクリプトで作成した画像は以下の通りです。キャプションテキストと画像サイズが書き込まれるの…
ffmpeg.wasmについて 以前whisper.cppに関するポストをしたが、whisper.cppへの入力として必要になる16kHzのwavファイル生成を簡単にできないかと考えていた。 shinshin86.hateblo.jp 16kHzへの変換については上のポストでも書いたように ffmege を用いるが、最近wasm周りに興味があるので ffmpeg.wasm 的なものもあるのでは?と思い調べてみたところ、まさにそれがあった。 github.com WebのフロントエンドやNode.jsなどのwasmが利用できるところであれば、これを用いることでffmpegを利用することができるよ…
動画のサイズを圧縮するにせよ、HEVCは汎用性がやや低かったり。 AV1 はどうだろうとffmpegでやってみたら、(8コアのCPUで)十分に実用的な圧縮速度が出るし、画質もHEVCと遜色ない。順次AV1のmkvへ移行する見込み。 私が使ってる例: ffmpeg -i input.mp4 -map_metadata 0 -c:v libsvtav1 -qp 44 -c:a copy output.mkv libsvtav1では-qpぐらいしかイジる余地がないらしく、デフォルトは50とのこと。私は44としている。小さければ小さいほど画質は上がりサイズは大きくなる。
これは Livesense Advent Calendar 2022 DAY 16 の記事です。 はじめに 私達のチームはbatonnというサービスを開発しています。 このサービスではWeb上で面接を録画したあと話者ごとに文字起こしをして面接を可視化できるように整形しています。 今回は文字起こしの高速化について行ったことを書きます。 はじめに 文字起こしの大雑把な手順 実装にあたっての話 実際のサービスで動かすときに考えないといけないこと batonnでの話 高速化を考える trackが持っている情報について Twilioのaudio trackを扱うときの注意点 最終的にどうなったか 文字起…
この記事は、みす56代 Advent Calendar 2022の2日目の記事です。 無駄にサイズのでかい動画にストレージの容量が圧迫されること、ありますよね。 自分はGeForce Experienceのインスタントリプレイをよく使っているので、ゲームの録画にHDDが圧迫されています……。 HDDの中身 インスタントリプレイ、確かデフォルトだと50Mbpsとかいうアホ設定で録画してくれるので5分の動画が1.7GBくらいになります。えっと、 「デカ過ぎんだろ……(動画サイズが)」 根本的解決のために最近追加でHDDを買ったりしたのですが、もっと単純に動画をエンコードし直せばよくないか、というこ…
golang をいじってみようかなと思ってはじめてみたら、とりあえず検索するとやりたいことが割と出てくるのでとても書きやすい。rust みたいに型と所有権で足踏みしてエラーメッセージで四苦八苦しなくていいし、できるようになった感がしてサンデープログラマーの自分にはいい感じ。こんなに書きやすいなら python で書いた" ffmpeg を使ったダウンローダー"を移植してみようとやってみたところ、agouti を使えるようになったらサクサク進んだのですが最後の最後に exec.Command で ffmpeg をうまく通せない。数日色々と弄り回してみたら、やっと原因がわかったのでご報告。ffmp…
OBS Studioに搭載されているNVENCに関しての記事 ※内容は「OBSのNVENCについて」を移転しました。 記事投稿日 2021年09月28日、最終投稿更新日 2023年05月29日 07時40分頃
OBS Studioに関するメモをたくさん書いてる記事。 ※「OBS Studioに関する個人的メモ」を移転しました。(現在は閲覧不可) 記事投稿日 2021年10月6日、最終投稿更新日 2023年05月29日 07時20分頃 かなり文字数が多いのでブラウザの検索機能をお使いください。 将来的に記事を分けて投稿したいと思ってます。(現在作業中) 記事が見にくくてすみません… ★何かあった際の連絡先 Twitter のDM Discord → _c#0007 ※無料でOBSに関して自分が分かる範囲でサポートします。 ★OBSで困った際に連絡する際に書いてほしいこと ・発生している状況 ・試したこ…
FFmpeg Ubuntu 22.04 LTS で AV1 のハードウェアエンコードに対応した最新の FFmpeg 6.0 を使ってみようと思った。あちこちのサイトで紹介されている某 PPA は、運営者が欲を出して闇落ちしたらしく、寄付しないとダウンロードできない private PPA に移行したようだ。代わりに https://github.com/markus-perl/ffmpeg-build-script を使った。 依存関係は全部入れてくれるスクリプトというわけではないようで、Issue 171 にあるように libxexet-dev が必要だった。libsdl2-dev はなくて…
SSDを切り替えてEndeavourOSをクリーンインストールしたわけですが OS停止時にwatchdogが正常に停止せず1分くらい待たされる ffmpeg関連の依存関係がおかしくなっていてアップデートできない というかねてからの問題点も解決しました。1.はOS停止や再起動時に結構待たされるし、2.も毎日毎日アップデート対象から手動で外さなきゃいけないしでストレスだったのでスッキリです。 こういう問題を自分で解決できるようになれればもっといいんですけどね、なかなかそうも行かないのが残念なところ。 ただ、/home配下をまるごとHDDにしたら、見事にもっさり。 Evernoteのメモを表示するの…
C# (.NET) で画像を扱うためにはいくつか選択肢があるが、ImageSharp はそのひとつ。 GitHub - SixLabors/ImageSharp: A modern, cross-platform, 2D Graphics library for .NET他の選択肢に対して full managed だがパフォーマンスに劣るというような感じだったが、現メジャーバージョンの 3.0 では Span を通してピクセル操作を行うAPIが用意されるなど、パフォーマンス的な見直しが図られているらしい。試してみる。 成果物のアニメーションを最初にペタリ。 (APNG なのでブラウザ次第で動…
research.reazon.jp github.com はじめに以前「Whisper」というのを用いて日本語音声の文字起こしをしました。 touch-sp.hatenablog.com 「Whisper」は多言語に対応していますが今回の「ReazonSpeech」は日本語専用です。 そのため日本語に限れば「Whisper」より精度が高いとのことです。環境PyTorch==1.12.1が指定されていたので以下の環境を用いました。 Ubuntu 20.04 on WSL2 CUDA 11.6 Python 3.9pip install torch==1.12.1+cu116 torchaudi…
CMカット&ロゴ除去エンコードは、バイナリパッケージでインストールしたQSV対応FFmpegだとEPGStationのストリーミング視聴でM2TS-LLもMP4もHLSも見れるけど、セルフビルドしたQSV関連パッケージとQSV対応FFmpegだとMP4しか見れない。よくわからん。そういえば、QSVはVP9も対応してたので試してみたけどWebMも同様に見れなかった。もう、この辺にしとこう。 てな訳で、CMカット&ロゴ除去に必要なパッケージと共にFFmpegもビルドし直してエンコードスクリプトとロゴデータを配置してEPGStationに設定した。軽く録画テストしてみて問題がなければ、このまま本番運…
朝、出かける際に勝手口の上側のSwitchBotロックが外れかけてるのを発見。このままじゃ落下しそうだったので、とりあえず剥がしておいた。しかし、またもや上側がくっつかなかったか。うちの勝手口ドアは一体どうなってんだ(汗) 昨日DEEN宅から回収した3TB HDDはMicroServer N40L(1台目)に取り付けてCrystalDiskInfoで確認。ああ、S.M.A.R.T.エラー出てるわ(汗)同様に昨日事務所の机上ラックから発掘した6TB HDDも同じだった。こりゃ、両方ともDBANかけて処分するか。 CMカット&ロゴ除去エンコードは昨日バイナリパッケージだけで組んだ環境だと問題なくE…
OBS Studio バージョン 26.0 (2020年09月29日リリース) で実装されたWindows向けの仮想カメラ機能に関する情報まとめ記事。 ※macOSとLinuxの仮想カメラはバージョン 26.1 (2020年12月15日リリース) で実装されましたが、この記事はWindows版を取り扱います。 記事投稿日 2020年9月2日、最終投稿更新日 2023年05月17日 03時30分頃 OBS Studio 仮想カメラ不具合情報 環境により内蔵ウェブカメラが使用できなくなることがあるようです。 情報元↓ OBS Virtual Camera may affect built-in w…
CMカット&ロゴ除去エンコードは昨日までに問題と対策は一応終わったので、あらためて録画PCを作成。が、何故かQSVを使うとストリーミングがM2TS-LLやHLSで出来ない症状が発生。以前は出来てたので当時と同じ手順で録画PCを作成すると、やはり問題なく出来る。と、言うことはセルフビルドしたffmpegとの差ってことか(汗)また、面倒な。 定時後、DEEN宅へ。母親に頼まれた土産を置きに行く。ついでにかなり前にDEEN宅2Fに置かせてもらっている録画PCのHDDを大容量に交換した際に前のHDDからのコピーを帰ってからリモートで行ったので、前のHDDを抜いてなかったってことで回収。リモートワークだ…
はじめに おはようございます!AnyTechの渡邉です。最近はAIとお話しすることにハマってます。 本記事はおしゃべりAIをオフラインかつローカルで実装するシリーズです。 JARVISって? 映画アイアンマンに登場する、主人公を日常・戦闘・開発のあらゆる状況で助けてくれる架空の人工知能です。 声で話しかけて、それに応じてJARVISが情報を提供したり、アイアンマンを自律制御したりサポートしてくれます。 主人公の良き相棒であり、頼れる存在です。 シリーズ こちらの手順を踏まえて、作っていきたいと思います。 ※ 本シリーズはローカルUbuntuマシンにGPUがある場合を想定しております。 第一回:…
まとめプレイリストが公開されてたので、その中から気になったやつを流し見した。 https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGxIV8Lt8gF_79Z334LQ6h
ソースコード import os from pathlib import Path def normalize_audio_folder(folder_path): # フォルダ内のすべてのファイルとサブフォルダを再帰的に取得します for root, _, files in os.walk(folder_path): for file in files: if file.endswith(".mp3"): # ファイルのパスを作成します file_path = os.path.join(root, file) # 音量を正規化します normalize_audio(file_path) de…
github.com 環境 Ubuntu 22.04 on WSL2 CUDA 11.8 Python 3.10pip install torch==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118 pip install git+https://github.com/openai/whisper.git Ubuntuにはあらかじめffmpegをインストールしています。 sudo apt install ffmpeg 「ffmpeg-python」というPythonパッケージのインストールは不要です。実行 import…
CMカット&ロゴ除去エンコードは昨晩仕掛けたものが上手く動いてなかったので原因を調査。FDK AACを入れたもののldconfigしてなかったのでffmpegがちゃんと動いてなかっただけだった。 一通り動くようになったと思うので放送局ごとに動作を確認しつつ、透過ロゴを集める。あとは、スクリプトの多少の見直しを考えながら動作確認したりとか。 が、あらためてエンコードやり直してたら一部の番組でchapter_exeの途中で止まったままハングアップしてる例に出くわしたので一旦停止&強制的にkillして終了。これは後日また調査せねばならん案件が出来た(汗) 定時後、第二神明で帰宅。晩御飯はミートドリア…