День добрый.
Есть файл с видео в формате yuv и аудио в формате oss (снято с веб-камеры).
Нужно склеить их в один файл в формате flv.
Делаю так:
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt yuv420p -i video.yuv -f oss -i audio.oss -vcodec flv -f flv out.flv
Вроде все получается. Однако, продолжительность файла video.yuv ~10 секунд, а audio.oss - ~30 секунд. Никто не подскажет, как сделать чтобы кодирование прекращалось когда "заканчивается" видеофайл, а все "лишнее" из звукового файла обрезалось?
ЗЫ На самом деле ни продолжительность видео ни продолжительность звука заранее не известны и могут варьироваться в очень широких пределах. Известно только что видео всегда короче звука.
> - ~30 секунд. Никто не подскажет, как сделать чтобы кодирование прекращалось
> когда "заканчивается" видеофайл, а все "лишнее" из звукового файла обрезалось?Померять длительность видео хотя бы тем же mplayer -frames 0 -identify и отдать ключ ffmpeg -t, не?
> Померять длительность видео хотя бы тем же mplayer -frames 0 -identify
> и отдать ключ ffmpeg -t, не?Спасибо, подумаю. Но на первый взгляд не вдохновляет. Это я сам виноват, потому как не все написал. На самом деле все выглядит так:
while true; do
pwcview -hkr ... | ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt yuv420p -i - -f oss -i /dev/dsp0.0 -vcodec flv -f flv tmp.flv
file=`date +%Y%m%d%H%M%S`
mv tmp.flv ${file}.flv
doneПричем pwcview немного заточен напильником - завершается когда достигнут конец выявленного движения. Т.е. хочется чтобы каждый фрагмент с движением находился в отдельном файле. И тут - меряй, не меряй - остановить чтение из dsp не получается :(
Видимо вообще придется без звука обойтись или искать какую-то альтернативу pwcview.
И почему разработчики ffmpeg не озадачились выявлением движения? Можно было бы им одним обойтись.