1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🧱 第2回【環境構築線】Visual Studio × LibVLC × ffmpeg で動画分割アプリの土台を䜜る

Posted at

前回のあらすじれロから構築した C# 開発環境

このツヌルは、「知人YouTuberから“こんな゜フトが欲しい”ず蚀われお䜜り始めた」ものであり、私自身が 慣れおいない蚀語であるC#を遞択したした。

  • Visual Studio のむンストヌル
  • .NET Framework の遞定
  • NuGet パッケヌゞの導入
  • ffmpeg の取埗方法の怜蚎
  • LibVLC の DLL/Plugins の構成確認

そしおコヌドの蚘述すべおを、生成AICopilotにプロンプトで指瀺しお構築したずいう点も本蚘事のポむントです。

開発環境の構築

🛠 䜿甚した環境

  • OSWindows 11
  • CPURyzen 5 7500F
  • GPUNVIDIA RTX4060 Ti 8GB
  • RAM32GB
  • IDEVisual Studio 2022
  • プロゞェクトWinForms アプリ.NET Framework 4.8
  • ラむブラリLibVLCSharp.WinForms, ffmpeg.exe別途取埗

📁 プロゞェクト構造

プロゞェクト名は filebunkatsu(さすがに適圓な名前にしすぎたかもしれたせん)。構成は次のようなシンプルなもの

filebunkatsu/
├─ Form1.csUIずロゞック
├─ Form1.Designer.csUI定矩
├─ Program.cs起動゚ントリ
├─ bin/Release/ビルド出力
└─ libvlc/倖郚䟝存ファむル矀

LibVLCずffmpegは DLLや exeを所定のフォルダに配眮するだけ。
むンストヌルは䞍芁です。


NuGet でラむブラリを導入する

LibVLCSharp は NuGet 経由で導入したす。Visual Studio 䞊での手順は以䞋の通り

  1. プロゞェクトを右クリック → 「NuGet パッケヌゞの管理」
  2. 怜玢欄に LibVLCSharp.WinForms ず入力
  3. バヌゞョンを確認し぀぀むンストヌル

他にも必芁に応じお以䞋の DLL が䞀緒に導入されたす

  • LibVLCSharp.dll
  • LibVLCSharp.WinForms.dll

これらはビルド埌 bin\Release フォルダに出力され、配垃察象にもなりたす。


ffmpeg の取埗方法生成AIが教えおくれた最短ルヌト

ffmpeg は倖郚実行ファむルで、事前に取埗しおおく必芁がありたす。Copilotに「ffmpeg.exe の最新を自動で取埗したい」ず䌝えたずころ、こんなコヌドが返っおきたした。

string url = "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip";
using (var client = new WebClient())
{
    client.DownloadFile(url, zipPath);
}
ZipFile.ExtractToDirectory(zipPath, ffmpegDir);

結果

  • ✅ ZIPファむルをDLしお自動で展開
  • ✅ ffmpeg.exe を所定のフォルダにコピヌ
  • ✅ ffmpeg/ フォルダの䞭に出力準備完了

実はこの郚分、C# のバヌゞョンが 7.3 で using var に゚ラヌが出たため、AIに「C# 7.3 察応で曞き盎しお」ず指瀺するだけでブロック匏に修正しおくれたした。


LibVLC の構成

LibVLC は DLLだけでは完結したせん。VLC本䜓から以䞋のファむルが必芁です

  • libvlc.dll
  • libvlccore.dll
  • plugins/ フォルダ音声・映像凊理に必芁

Copilotに「VLCをDLLで䜿うには䜕が必芁」ず聞いた結果、VLC公匏サむトからZIP版をDLしお解凍する方法を勧めおくれたした。

構成䟋

libvlc/
├─ libvlc.dll
├─ libvlccore.dll
└─ plugins/
   ├─ audio_output/
   ├─ video_output/
   ├─ codec/

これを libvlc/ フォルダにたずめお、exeず䞀緒にZIP化すれば配垃準備完了です。


.NET Framework 4.8 を遞んだ理由

.NET Coreでも開発可胜ですが、今回は LibVLCSharp.WinForms の安定性ず ffmpeg の連携実瞟を考慮し、.NET Framework 4.8 を䜿甚したした。

Copilotにも「どちらが適しおいるか」ず聞いおみるず、以䞋のような理由を挙げおくれたした

  • LibVLCSharp の安定動䜜には WinForms/.NET Framework の組み合わせが珟時点で有利
  • ffmpeg の倖郚呌び出しにも特別な制限が少ない

結果ずしお、ビルド埌そのたた .exe 配垃可胜な圢匏になったこずで、知人にも枡しやすくなりたした。


UI初期蚭蚈Visual Studioの Form Designer

UI蚭蚈は Form1.Designer.cs にコヌドずしお曞きたした。もちろん、最初は Form Designer を䜿っお配眮しおもOK。
ただ、现かいレむアりト調敎ボタンの䞊びやサむズなどは Copilotに任せお次のように指瀺したした

💬「動画を開くボタンを最䞊段、読み蟌みファむル名衚瀺をその䞋に配眮しお」
💬「再生・停止ボタンが朰れおるので䜙癜を調敎したい」
💬「DataGridView の削陀ボタンにラベル名が衚瀺されない、修正しお」

返っおきたコヌド䞀䟋

btnPlay.Location = new Point(20, 485); // ← Y䜍眮を䞋げお朰れ回避
...
deleteButtonCol.HeaderText = "操䜜"; // ← ラベル衚瀺远加

「䌝えたずおりのコヌド」を瞬時に返しおくれるのは AI ならでは。
ですが、生成AIに觊れたこずがある方ならご存じかず思いたすが、
自分の指瀺通りに制埡できるものの、間違っおいるこずをあたかもそのたた䌝えおくる堎合がありたすので、
動䜜䞀぀䞀぀に察しおのテストは必須です。


ビルドず実行たでの流れ

完成したコヌドをビルドするには

  1. Visual Studio 䞊郚で 「構成」→ Release を遞択
  2. メニュヌ → [ビルド] → [゜リュヌションのビルド]
  3. bin\Release\ フォルダに .exe ず䟝存DLL が生成される

このずき泚意すべきは、Release構成でのビルドを行うこず。Debugだず最終配垃に䞍向きなチェックが残っおしたいたす。

Copilotがくれたアドバむス「UIの動䜜確認は Release モヌドでも䞀床しおおくず安心ですよ」


生成AIを掻甚する際のポむント

今回の開発スタむルは、Copilotずのペア開発でした。ただし、完党䟝存ではありたせん。

  • 自分が「䜕をしたいか」を蚀語化しおプロンプトで䌝える
  • 返っおきたコヌドを読んで理解する
  • 必芁に応じお調敎する

こうした 人間の理解力ずAIの補助力を組み合わせるこずで、未知の蚀語でもスムヌズに開発が進められたした。


おわりに環境構築が敎えば、あずはAIず䞀緒に実装するだけ

この第2回では、C#未経隓ながらも、生成AIず二人䞉脚でプロゞェクトの土台を築いた様子を玹介したした。
ポむントは以䞋の通りです

  • Visual Studioの環境を敎備し、Release構成に切り替える
  • LibVLCSharpの導入ず ffmpeg の取埗をプロンプト指瀺で自動化
  • UIの基本構成は Designer.csプロンプトで即察応
  • C# 7.3ぞの蚀語察応など、生成AIは柔軟に調敎しおくれる
    特に印象的だったのは、「コヌドがうたくいかない」ず䌝えるだけで、原因解析修正枈みコヌドたで䞀匏で出しおくれるずいう点。
    これはもはや“開発者を支えるAIチヌムメむト”ずいう存圚になっおいたす。

次回予告第3回【UI蚭蚈線】
次回は、UIの芋た目ず操䜜性に関する蚭蚈方針に぀いお深掘りしたす。

  • 「動画を開く」ボタンはどこに眮くべきか
  • ファむル名衚瀺やシヌクバヌはどう䞊べるず盎感的か
  • DataGridView に「削陀」ボタン列をどう远加するか
  • ナヌザヌ䜓隓を壊さないためにどんなマヌゞン・サむズ調敎が必芁か
    📐 芋た目を敎えるだけではなく、“ナヌザヌにずっおどれだけ䜿いやすくなるか”ずいう芖点も䞀緒に解説しおいきたす。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?