Gemorroj » 2008.12.06 17:05

Вобщем кому приходилось заниматься конвертированием аудио/видео файлов, меня поймет)
Выкладываю кое-какие шаблоны.
Getting infos from a video file

Код:

1
ffmpeg -i video.avi

Turn X images to a video sequence

Код:

1
ffmpeg -f image2 -i image%d.jpg video.mpg

This command will transform all the images from the current directory (named image1.jpg, image2.jpg, etc...) to a video file named video.mpg.
Turn a video to X images

Код:

1
ffmpeg -i video.mpg image%d.jpg

This command will generate the files named image1.jpg, image2.jpg, ...

The following image formats are also availables : PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
Encode a video sequence for the iPpod/iPhone

Код:

1
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4

Explanations :
Source : source_video.avi
Audio codec : aac
Audio bitrate : 128kb/s
Video codec : mpeg4
Video bitrate : 1200kb/s
Video size : 320px par 180px
Generated video : final_video.mp4
Encode video for the PSP

Код:

1
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

Explanations :
Source : source_video.avi
Audio codec : aac
Audio bitrate : 32kb/s
Video codec : xvid
Video bitrate : 1200kb/s
Video size : 320px par 180px
Generated video : final_video.mp4
Extracting sound from a video, and save it as MP3

Код:

1
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

Explanations :
Source video : source_video.avi
Audio bitrate : 192kb/s
output format : mp3
Generated sound : sound.mp3
Convert a wav file to mp3

Код:

1
ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3

Convert .avi video to .mpg

Код:

1
ffmpeg -i video_origine.avi video_finale.mpg

Convert .mpg to .avi

Код:

1
ffmpeg -i video_origine.mpg video_finale.avi

Convert .avi to animated gif(uncompressed)

Код:

1
ffmpeg -i video_origine.avi gif_anime.gif

Mix a video with a sound file

Код:

1
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

Convert .avi to .flv

Код:

1
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv

Convert .avi to dv

Код:

1
ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv

Or:
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
Convert .avi to mpeg for dvd players

Код:

1
ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg

Explanations :
target pal-dvd : Output format
ps 2000000000 maximum size for the output file, in bits (here, 2 Gb)
aspect 16:9 : Widescreen
Compress .avi to divx

Код:

1
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi

Compress Ogg Theora to Mpeg dvd

Код:

1
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminée.mpg

Compress .avi to SVCD mpeg2

NTSC format:

Код:

1
ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg

PAL format:

Код:

1
ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg

Compress .avi to VCD mpeg2

NTSC format:

Код:

1
ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg

PAL format:

Код:

1
ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg

Multi-pass encoding with ffmpeg

Код:

1
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

Find a webhost with ffmpeg enabled

WebGraf » 2009.10.12 20:09

а как сконвертировать из ком строки все файлы в директории с сохранением имени?
тоесть чтобы не вручную каждый файл

Gemorroj » 2009.10.12 20:45

Код:

1
2
3
4
5
foreach(scandir('./') as $f){
if (is_file($f)) {
exec('ffmpeg -i ' . escapeshellcmd($f) . ' ' . escapeshellcmd($f) . '.jpg');
}
}
WebGraf » 2009.10.12 21:29

спасибо

WebGraf » 2009.10.13 00:05

а как запустить это через ssh?

Gemorroj » 2009.10.13 03:18

php -r нужный php код без <?php и ?>

WebGraf » 2009.10.13 23:58

-bash: syntax error near unexpected token `('
вот что написало

Gemorroj » 2009.10.14 00:04

ну напиши что ты писал в коммандной строке.

WebGraf » 2009.10.14 00:52

Код:

1
2
3
4
5
6
php -r
foreach(scandir('./') as $f){
if (is_file($f)) {
exec('ffmpeg -i ' . escapeshellcmd($f) . ' ' . escapeshellcmd($f) . '.jpg');
}
}
Gemorroj » 2009.10.14 01:02

в 1 строку нужно писать

WebGraf » 2009.10.14 01:07

у меня все в 1 строке. я просто копировал ваш код выше

Gemorroj » 2009.10.14 01:08

значит напиши так, как у тебя

WebGraf » 2009.10.14 01:13

Код:

1
php -r foreach(scandir('./') as $f){ if (is_file($f)) { exec('ffmpeg -i ' . escapeshellcmd($f) . ' ' . escapeshellcmd($f) . '.jpg'); } }
Gemorroj » 2009.10.14 01:57

Код:

1
php -r "foreach(scandir('./') as $f){ if (is_file($f)) { exec('ffmpeg -i ' . escapeshellcmd($f) . ' ' . escapeshellcmd($f) . '.jpg'); } }"
WebGraf » 2009.10.14 09:10

гг. понял. голова, два уха, а ума неаааа

вечером тестану

WebGraf » 2009.10.14 17:54

ошибки не выдает но и ничего не происходит
никакого кодирования

Gemorroj » 2009.10.14 18:11

а путь к папке с файлами правильный?

WebGraf » 2009.10.14 18:17

а если выполнить это в пхп к конкретному файлу без foreach(scandir('./') as $f){ if (is_file($f)) то получится следуюущее

Warning: escapeshellcmd() has been disabled for security reasons in /var/www/mediarunet/data/www/mediaru.net/ffmpeg.php on line 5

Warning: escapeshellcmd() has been disabled for security reasons in /var/www/mediarunet/data/www/mediaru.net/ffmpeg.php on line 5

Warning: exec() has been disabled for security reasons in /var/www/mediarunet/data/www/mediaru.net/ffmpeg.php on line 5
Добавлено спустя   9 минут  55 секунд:
понял причину

WebGraf » 2009.10.14 18:37

ошибки убрал. выключены функции были exec и escapeshellcmd
теперь без ошибки в пхп
минутку щас попробую решить вопрос этот

WebGraf » 2009.10.14 18:56

и вот что получается. если указать конкретный файл то делает а с foreach(scandir конверта не происходит
причем только через ssh работает, через пхп невыполняет ничего тот же код
Добавлено спустя   6 минут  8 секунд:

Код:

1
php -r "foreach(scandir('/var/www/путь/video/') as ($f){ if (is_file($f)) { exec('/usr/bin/ffmpeg -i ' . escapeshellcmd($f) . ' ' . escapeshellcmd($f) . '.jpg'); } }"

без ошибок и без выполнения

Gemorroj » 2009.10.14 19:05

потому что перед переменной $f нужно указать директорию. $f - это только имя файла.

WebGraf » 2009.10.14 19:28

тоесть так?

Код:

1
php -r "foreach(scandir('/var/put/video/') as ('/var/put/video/'.$f){ (is_file('/var/put/video/'.$f)) { exec('/usr/bin/ffmpeg -i ' . escapeshellcmd('/var/put/video/'.$f) . ' ' . escapeshellcmd('/var/put/video/'.$f) . '.jpg'); } }"
Gemorroj » 2009.10.14 20:06

да

WebGraf » 2009.10.14 20:22

также ничего. кстати в коде выше if пропустил я

Gemorroj » 2009.10.14 20:56

Код:

1
foreach(scandir('/var/put/video/') as $f){ if(is_file('/var/put/video/'.$f)) { exec('/usr/bin/ffmpeg -i ' . escapeshellcmd('/var/put/video/'.$f) . ' ' . escapeshellcmd('/var/put/video/'.$f) . '.jpg'); } }
WebGraf » 2009.10.14 21:11

также
Добавлено спустя   1 минуту  11 секунд:
мда. может есть другой вариант?

Gemorroj » 2009.10.14 21:20

есть) не через php, а через bash =) но я его не знаю.

WebGraf » 2009.10.14 21:32

будем искать. на какомто форуме видел раньше случайно. теперь ищу немогу найти

WebGraf » 2009.10.14 21:53

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

Gemorroj » 2009.10.14 22:07

я не знаю что за класс ffmpeg
хотел попробовать у себя на сервере выполнить этот код, но ключ -r почему-то не доступен. на виндовом локалхосте все ок.

WebGraf » 2009.10.14 22:58

посоветуй ресурс где больше  народа, что знаются на этом

Gemorroj » 2009.10.14 23:04

а зачем тебе именно ssh ? выполни обычный php скрипт.

WebGraf » 2009.10.14 23:12

сейчас проверю как он работает в пхп
Добавлено спустя   2 минуты  56 секунд:
выполнил в пхп
но ничего также не сконвертировано

Gemorroj » 2009.10.14 23:18

вероятно, что-то с путями у тебя что-то не так. /var/put/video/ - откуда взялся этот путь? где ты его смотрел, не в ftp клиенте-ли случайно?

WebGraf » 2009.10.14 23:19

даже выполняя код

Код:

1
exec('/usr/bin/ffmpeg -i /var/www/put/video/to.mp4 /var/put/video/g.jpg');

Добавлено спустя   2 минуты  2 секунды:

Gemorroj написал:

вероятно, что-то с путями у тебя что-то не так. /var/put/video/ - откуда взялся этот путь? где ты его смотрел, не в ftp клиенте-ли случайно?

С путем все верно. Там путь намного больше. я упростил его, чтобы тебя не путать лишними буковками.
И код в предыдущем после через ssh (php -r "") выполняется, а в пхп нет
Добавлено спустя   5 минут  17 секунд:
хотя через ssh можно и проще

Код:

1
2
cd /var/www/put/video/
/usr/bin/ffmpeg -i to.mp4 g.jpg

и именно такого рода код я видел на какомто форуме чтобы все файлы из директории сразу

Gemorroj » 2009.10.14 23:27

Нет, конктретно это создаст 1 jpg картинку из 1 mp4 файла.

WebGraf » 2009.10.14 23:32

ты меня непонял. код описан мною выше сделает то что ты говоришь. а вот что я видел и незапомнил был чтото на подобе вот этого

Код:

1
/usr/bin/ffmpeg -i *.mp4 какието параметры %.jpg

ну непомню что там было, хоть убей. я просто имею ввиду что там небыло foreach(scandir

WebGraf » 2009.10.17 01:01

Код:

1
find /var/video -name '*.mp4' -type f -exec /usr/bin/ffmpeg -i '{}' '{}'.jpg \;

вот подсказали. теперь еще нужно размер превьюшек сразу выставить и выбрать 5 кадр (к примеру) из видео

Akdmeh » 2009.10.17 01:15

Кст, а есть gui интерфейс конвертирования для ffmpeg под линукс?
А то не хватает конвертера...

Gemorroj » 2009.10.17 02:09

Akdmeh, кажись нету) самому если только WEB интерфейс какойнить написать))

WebGraf » 2009.10.19 10:53

а как сделать jpg из 5 кадра видео?

Gemorroj » 2009.10.19 11:06

Код:

1
ffmpeg -i swing.avi -s 320×240 -vframes 5 -f image2 swing.jpg
WebGraf » 2009.10.19 11:25

-vframes
спасибо

WebGraf » 2009.10.19 11:39

делает из первого. видео в формате 3gp

Gemorroj » 2009.10.19 12:08

мм, как ты определил что это 1, а не 5 кадр? просто в 1 секунде могут умещаться много кадров. дефолтно 24 кадра в 1 секунде.

WebGraf » 2009.10.19 12:15

и то правда

mp3 » 2010.02.08 03:00

Подскажите какой командой ffmpeg изменить битрейт mp3 файла с сохранением ID3 тегов?

Fuelen » 2010.02.08 08:16

Никакой

Gemorroj » 2010.02.08 09:27

не, там можно как-то.

mp3 » 2010.02.08 09:43

Fuelen, возможно.
Я даже изменял битрейт, но там стерлись все ID3 теги, а мне нада команда с помощью которой остаются ID3 теги.

Gemorroj » 2010.02.08 10:16

попробуй добавить директиву

Код:

1
-map_meta_data "исходный mp3":"измененный mp3"
mp3 » 2010.02.08 11:24

Gemorroj, куда это добавить?
Я использую ffmpeg.

mp3 » 2010.02.08 11:53

Gemorroj, не помогло.

Gemorroj » 2010.02.08 12:02

дай все комманды, которые передаешь ffmpeg

mp3 » 2010.02.08 21:13

Gemorroj, вот:
ffmpeg -i test1.mp3 -ab 64k test2.mp3

Gemor » 2010.02.08 23:15

Код:

1
ffmpeg -i test1.mp3 -ab 64k -map_meta_data test2.mp3:test1.mp3 test2.mp3
mp3 » 2010.02.09 09:23

Gemor, не работает, я же говорил.

Gemorroj » 2010.02.09 09:57

Gemorroj написал:

-map_meta_data "исходный mp3":"измененный mp3"

я там перепутал, сначала нужно измененный, а потом исходный файлы

mp3 » 2010.02.09 13:05

Gemorroj, знаю ;)
Я до этого пробовал ею воспользоваться.
Она то ID3 теги копирует, но на телефоне они в плохой кодировке, а на ПК ничего не показывает в свойствах mp3 файла (ни длительности, ни битрейта и т.д.).

Gemorroj » 2010.02.09 14:40

так битрейт и длительность к метатегам отношения не имеют.

mp3 » 2010.02.09 16:49

Gemorroj, я знаю, просто там никакой информации нету.

john77 » 2010.08.04 22:49

"Подскажите какой командой ffmpeg изменить битрейт mp3 файла с сохранением ID3 тегов?"
дык,
ffmpeg -i input.mp3 -acodec libmp3lame -ab 128k output.mp3
Ни разу теги не косячило. Вместо 128 свой битрейт

john77 » 2010.08.04 22:53

"Кст, а есть gui интерфейс конвертирования для ffmpeg под линукс?"
http://winff.org/html_new/downloads.html

Akdmeh » 2010.08.06 00:52

Можно ли наложить субтитры в формате srt на видео?
Можно, но как?;)
//и если можно - ссылку на мануал по ffmpeg, а если на руском - то цены не было б)

Windler » 2012.02.13 13:51

Помогите решить проблемку.
Делаю так:
ffmpeg -i 1.mp3 -acodec mp3 -ab 64k output.mp3
В ответ получаю:
Unknown encoder 'mp3'
Ubuntu 10.10 :)

Gemorroj » 2012.02.13 15:09

замени на libmp3lame

Windler » 2012.02.13 15:14

Gemorroj написал:

Unknown encoder 'mp3'

Unknown encoder 'libmp3lame' гы)

Gemorroj » 2012.02.13 15:44

значит нужно ставить какой-либо енкодер. я не спец по таким штукам, можно посмотреть какие енкодеры стоят в системе, и попробовать конвертить ими. либо ставить какой-либо енкодер с поддержкой мп3.