IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

Windowsでcurlとかwgetとか

for($idx=2; $idx -lt 10; $idx++) {
   Invoke-WebRequest -Uri "https://www.foo.bar/${idx}.mp3" -outfile "D:\buzz/${idx}.mp3"
}

Audacityで音声ファイルの連結

いつも忘れるのでメモ

  1. ドラックアンドドロップで音声ファイルを取り込む
  2. 連結したい順番に上から下に並べ替える
  3. 取り込んだトラックを選択する
  4. メニュー->トラック->トラックをそろえる->開始点を別トラックの最終点に合わせる
  5. オーディオの書き出し

FFmpegのパラメータの順番で-toの挙動が変わる

Web検索すると、ffmpegのパラメータの使い方として、ファイルを指定する-iより、シーク場所を指定する-ssを、先に指定したほうがよいとの情報があります。

ffmpeg -i foo.mp3 -ss 00:00:02.540 -t 3 -c copy bar.mp3

よりも

ffmpeg -ss 00:00:02.540 -i foo.mp3 -t 3 -c copy bar.mp3

よいと。この例では、切り出す時間の長さを指定する-tオプションが使われています。

-tではなく、トリムの終点を指定する-toオプションを使った場合、-i-ssの順番の違いで挙動が異なりました。

ffmpeg -i foo.mp3 -ss 00:00:02.540 -to 00:00:06.649 -c copy bar.mp3

とすると、00:00:02.540から00:00:06.649の範囲でトリムができました。しかし、

ffmpeg -ss 00:00:02.540 -i foo.mp3 -to 00:00:06.649 -c copy bar.mp3

とすると、00:00:02.540を起点として00:00:06.649の時間分のトリムをするようです。バグだろうと思ったのですが、この挙動はちゃんとドキュメントに書いてありました。

Seeking – FFmpeg

起点と終点を指定したい場合は、-copytsを加える必要があるとのこと。

JavaScriptでSQLServerにアクセス

node-mssqlでアクセスできる模様。(試してない)

node-mssqlが便利なインターフェースを用意していて、ドライバがtediousjsとういう役割分担。

my program <--> node-mssql <--> tediousjs <--> SQLServer

node-mssql

GitHub - tediousjs/tedious: Node TDS module for connecting to SQL Server databases.

なんで、tediousっていう名前なのかとずっと疑問でしたが、シャレになっているようですね。

tediousの意味・使い方 - 英和辞典 Weblio辞書

SQLServer Management Studio上のクエリでプロシージャを実行してもSQLBatchとして実行される模様

サンプルのNorthwindで次のクエリをSQLServer Management Studioで実行したら、SQLBatchとして実行されていました。クエリ全体が文字列(下の例でいえば6行全体)として扱われているようです。PreparedStatementとして実行されることを期待していたのですが。。。

Declare @P1 int;  
Exec sp_prepare @P1 output,   
    N'@id int',  
    N'SELECT [EmployeeID],[LastName],[FirstName],[Title] FROM [Northwind].[dbo].[Employees] where EmployeeID = @id';  
Exec sp_execute @P1, 1;  
EXEC sp_unprepare @P1;