LinuxでEasyCAP STK1160を使用して古いVHSカセットをデジタル化したいと思います。コンポジットビデオ入力は/dev/video1
、およびhw:2,0
は、USBALSAコンポジット2チャンネルオーディオ用です。
ストリームをRAW形式でキャプチャするには、次のものを使用します。
ffmpeg -f alsa -ac 2 -i hw:2,0 -f rawvideo -r 25 -s 720x576 -i /dev/video1 -codec:a pcm_s16le -codec:v rawvideo -f rawvideo raw_streams.raw
2パスでrawファイルをh264にエンコードするには、次を使用します。
time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 1 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 /dev/null
time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 2 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 "final.mp4"
質問#1:結果として得られるエンコードされた.mp4は、ビデオは良好ですが、サウンドはありません。サウンドチャネルをrawファイルに追加してからmp4に追加するにはどうすればよいですか?次のコマンドで音声のみを正常にキャプチャすると、の行に音声があることがわかります。
ffmpeg -f alsa -i hw:2,0 output.wav
質問#2: PAL-Bを生のビデオのビデオキャプチャ形式として指定するにはどうすればよいですか? man ffmpeg
この問題に関する情報はないようです。
質問#3:すべてのカセットに全長の録音があるわけではないので、いつ停止するかがわかるように、キャプチャしながらライブストリームも表示したいと思います。私はこれを行います:
mplayer -fps 25 tv:// -tv driver=v4l2:device=/dev/video1
ストリームを表示するか、キャプチャします。両方を実行しようとすると、次のエラーが発生します。/dev/video1: Device or resource busy
どうすればこれらのことを同時に行うことができますか?
#1 rawvideoストリームに保存しているため、オーディオは保存されません。 NUTのようなコンテナに保存する必要があります。
ffmpeg -f rawvideo -framerate 25 -s 720x576 -i /dev/video1 -f alsa -ac 2 -i hw:2,0
-c:a pcm_s16le -c:v rawvideo raw.nut
#2これはキャプチャデバイスのドライバ/設定で設定する必要があります。 FFmpegは、USBデバイスによってデジタル化された生のビデオストリームを受信しています。具体的にどのプロパティを設定する必要がありますか?すべてのPALバリアントは、フレームサイズとレートを共有します。
#ティーマルチプレクサを使用して、キャプチャをffplayにパイプできます
ffmpeg -f rawvideo -framerate 25 -s 720x576 -i /dev/video1 -f alsa -ac 2 -i hw:2,0
-c:a pcm_s16le -c:v rawvideo -f tee "raw.nut|[f=nut]pipe:" | ffplay -f nut -