подскажите простой способ склеить кучу мелких видеофайлов

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

tull
Сообщения: 484

подскажите простой способ склеить кучу мелких видеофайлов

Сообщение tull »

есть куча (несколько сот) директорий, в каждой несколько (от 2-3 до нескольких десятков) видеофайлов. формат в основном avi, mpg
в одной директории видео вроде как всегда одного формата и одного разрешения.

надо склеить файлы в каждой директории в один файл. порядок фрагментов определяется именами исходных файлов (там 00001.avi, 00002.avi и т.д.).

подскажите плиз наиболее простой путь :)
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Goodvin »

Вам надо делать это вручную или автоматом ?
Спасибо сказали:
tull
Сообщения: 484

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение tull »

конечно же автоматом
там такое кол-во директорий, что вручную замучаешься.
т.е. надо пропарсить все директории, в каждой из которой куча мелких файлов. и положить результат куда-то в другое место
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Goodvin »

Программу для склейки произвольных кусков видео уже нашли ?
Спасибо сказали:
tull
Сообщения: 484

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение tull »

Goodvin писал(а):
22.08.2008 19:04
Программу для склейки произвольных кусков видео уже нашли ?
нет конечно! в этом основной вопрос - я даже примерно не знаю, чем это делать, т.к. никогда в жизни не занимался обработкой видео
Спасибо сказали:
Аватара пользователя
DiS
Сообщения: 296
ОС: Gentoo

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение DiS »

если все файлы имеют одинаковое разрешение, битрейт и кодек - это можно сделать утилитой avimerge. но точно не помню есть у неё какие-то ограничения или нет.
Если правильно задать вопрос, то он сам по себе будет ответом.
Спасибо сказали:
Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Данил »

man mencoder

потом ручки и скриптик :likelinux:
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Goodvin »

tull писал(а):
22.08.2008 20:58
Goodvin писал(а):
22.08.2008 19:04
Программу для склейки произвольных кусков видео уже нашли ?
нет конечно! в этом основной вопрос - я даже примерно не знаю, чем это делать, т.к. никогда в жизни не занимался обработкой видео
Для начала посмотрите на avidemux .
Вот здесь подробно расписаны опции командной строки: http://www.avidemux.org/admWiki/index.php?...mand_line_usage

Кроме того, смотреть сюда: Редактирование_и_преобразование_аудио_и_видео_файлов

Да и вообще, поиск дает более чем положительный результат.
В том числе и в гугле.

Когда разберетесь с тем, как склеивать Ваши файлы вручную - оберните эту процедуру в скрипт, который будет пробегать по нужным каталогам и склеивать нужные куски.
Спасибо сказали:
Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Данил »

Давно было дело тоже занимался
Уже не помню, но чтото вроде
mencoder -чтототам `ls /твоя папка` -o выход.avi

Обрати внмание, что скобки косые
Поэкспериментируй с косыми скобками, оч удобная функция терминала
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:
GuT
Сообщения: 9

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение GuT »

А вот мне необходимо объединить два 3GP файла в один.
И это надо автоматом, так как таких файлов очень много.
Спасибо сказали:
Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Данил »

Да без разницы какой входной формат!!!
Если mplayer играет, то mencoder примет тоже!

А автоматом я уже говорил
используй косые скобки
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:
GuT
Сообщения: 9

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение GuT »

Данил писал(а):
23.08.2008 16:35
Да без разницы какой входной формат!!!
Если mplayer играет, то mencoder примет тоже!


В том то и дело, что Mplayer 3gp прекрасно воспроизводит.
А MEncoder при

Код: Выделить всё

# cat 1.3gp 2.3gp | mencoder - -oac copy -ovc copy -o 12.3gp

выводит следующее:

Код: Выделить всё

MEncoder 1.0rc2-4.0.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
Reading from stdin...
success: format: 0  data: 0x0 - 0x0
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Win32 LoadLibrary failed to load: avisynth.dll, /usr/local/lib/codecs/avisynth.dll, /usr/lib/win32/avisynth.dll, /usr/local/lib/win32/avisynth.dll
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
Cannot seek backward in linear streams!
Seek failed
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===
Cannot open demuxer.

Exiting...
Спасибо сказали:
GuT
Сообщения: 9

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение GuT »

Хм... Получилось всё-таки склеить их вот такой вот командой

Код: Выделить всё

mencoder -ovc copy -oac pcm -o ok.3gp a.3gp b.3gp

Но вес файла стал 6,1mb! Когда a.3gp весит 140kb, а b.3gp - 3,8mb.
Почему так увеличился размер файла? Ведь по идее ok.3gp должен был весить около 3.9 mb или 4 mb.
И какчество выходного файла гораздо хуже входных. Да ещё и aviшный MIME-тип у выходного файла.
Спасибо сказали:
Аватара пользователя
Данил
Сообщения: 944
ОС: windows xp, cruncheee, ddwrt

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Данил »

А всё потому, что на выходе у тебя уже не 3gp!!!
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600

Противник HAL NETWORKMANAGER и других подобных паделок!!!
Спасибо сказали:
GuT
Сообщения: 9

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение GuT »

Вах. Ещё больше проблем вылезло.
Посмотрев документацию на http://www.mplayerhq.hu, понял, что для 3gp надо указать lavc.
Вот так сделал

Код: Выделить всё

#mencoder -ovc lavc -oac lavc -o hm.3gp a.3gp b.3gp

Выдало:

Код: Выделить всё

MEncoder 1.0rc2-4.0.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0  data: 0x0 - 0x38e6
ISO: File Type Major Brand: 3GPP Profile 4
Quicktime/MOV file format detected.
[mov] Video stream found, -vid 0
[mov] Audio stream found, -aid 1
MOV: unknown sound atom version (14550); may not work!
VIDEO:  [s263]  176x144  24bpp  10.000 fps    0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:7  fourcc:0x33363273  size:176x144  fps:10.00  ftime:=0.1000
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 8000 Hz, 1 ch, s16le, 128.0 kbit/100.00% (ratio: 16000->16000)
Selected audio codec: [ffamrnb] afm: ffmpeg (AMR Narrowband)
==========================================================================
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh263] vfm: ffmpeg (FFmpeg H.263+ decoder)
==========================================================================
[mp2 @ 0x86fc5f0]Sampling rate 8000 is not allowed in mp2
Couldn't open codec mp2, br=224.

Exiting...


Погуглив, узнал, что мне необходимо добавить lavc-lavcopts abitrate = 224, делаю:

Код: Выделить всё

# mencoder -ovc lavc lavc-lavcopts abitrate = 224 -oac lavc -o hm.3gp a.3gp b.3gp

И выдало то, на что и гугл толком помочь не может:

Код: Выделить всё

MEncoder 1.0rc2-4.0.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
File not found: 'lavc-lavcopts'
Failed to open lavc-lavcopts.
Cannot open file/device.

Exiting...

Хм... И как быть дальше?

Может не lavc-lavcopts, а просто -lavcopts, то тогда

Код: Выделить всё

# mencoder -ovc lavc -oac lavc -lavcopts abitrate = 224 -o hm.3gp a.3gp b.3gp
MEncoder 1.0rc2-4.0.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

Error parsing option on the command line: -lavcopts

Exiting... (error parsing command line)
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение Mage-Warrior »

Пробельчики между abitrate, знаком "=" и значением 224 лишние.

Код: Выделить всё

mencoder -ovc lavc -oac lavc -lavcopts abitrate=224 -o hm.3gp a.3gp b.3gp
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
GuT
Сообщения: 9

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение GuT »

Mage-Warrior, благодарю.

Да и с указанием abitrate, как я нашёл на других сайта, что при "Couldn't open codec mp2, br=224." надо указать abitrate.

Код: Выделить всё

# mencoder -ovc lavc -oac lavc -lavcopts abitrate=224 -o hm.3gp a.3gp b.3gp

Всё равно вылазиет эта ошибка:
MEncoder 1.0rc2-4.0.3 © 2000-2007 MPlayer Team
CPU: Intel® Pentium® 4 CPU 2.80GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0 data: 0x0 - 0x38e6
ISO: File Type Major Brand: 3GPP Profile 4
Quicktime/MOV file format detected.
[mov] Video stream found, -vid 0
[mov] Audio stream found, -aid 1
MOV: unknown sound atom version (14550); may not work!
VIDEO: [s263] 176x144 24bpp 10.000 fps 0.0 kbps ( 0.0 kbyte/s)
[V] filefmt:7 fourcc:0x33363273 size:176x144 fps:10.00 ftime:=0.1000
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 8000 Hz, 1 ch, s16le, 128.0 kbit/100.00% (ratio: 16000->16000)
Selected audio codec: [ffamrnb] afm: ffmpeg (AMR Narrowband)
==========================================================================
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh263] vfm: ffmpeg (FFmpeg H.263+ decoder)
==========================================================================
[mp2 @ 0x86fc5f0]Sampling rate 8000 is not allowed in mp2
Couldn't open codec mp2, br=224.

Exiting...
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: подскажите простой способ склеить кучу мелких видеофайлов

Сообщение sspphheerraa »

кури опцию -of
Sspphheerraa
Спасибо сказали: