2013-03-05 4 views
6

Если у меня есть файл .mp4 с потоком видео и аудиопотоком. Я ж я выполнить эту команду:Есть ли способ получить ровно 1-секундный клип, используя ffmpeg с пришедшим кодеком AAC в AAC

ffmpeg -i input.mp4 -ss 00:00:14.000 -t 00:00:01.000 -vn -c:a libfaac audio.m4a 

Результат Продолжительность: 00: 00: 01.02, старт: 0,021179. Я хочу, чтобы убедиться, что время начала начинается с 0, так что я ресэмплировать его с помощью:

ffmpeg -i audio.m4a -ss 00:00:00.000 -t 00:00:01.000 -c:a libfaac audio2.m4a 

В результате этой команды имеет Продолжительность: 00: 00: 01,02, начать 0,000000. Есть ли способ получить ровно 1 секунду в качестве конечного результата с 0 значением для начала?

В предыдущих попытках я использовал флаги -map 0: 1 -ab 128k -ar 44100, но он дает те же результаты.

Я могу предоставить полный выход из ffmpeg, если потребуется.

Спасибо.

+0

несколько вопросов: Что такое аудио частота дискретизации в исходном файле? 44100 или 48000 Гц? Является ли оригинальное аудио и AAC? Если это так, вы хотите сделать перекодирование аудио (что повлечет за собой потерю поколений), а не ремуксирование без потерь? –

+0

Информация о потоке аудио: Поток # 0: 1 (eng): Аудио: aac (mp4a/0x6134706D), 48000 Гц, моно, fltp, 96 kb/s Что касается вашего второго вопроса, то транскодирование звука будет прекрасным , Просто нужно получить * точно * одну секунду продолжительности с временем начала 0. –

ответ

0

Я установил это, выбирая кадры вместо

$ ffmpeg -i input.mp4 -ss 14 -frames 46 -vn pass-1.m4a 

$ ffmpeg -i pass-1.m4a -c copy audio.m4a 

Result

 
$ ffmpeg -i audio.m4a 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'audio.m4a': 
    Metadata: 
    major_brand  : M4A 
    minor_version : 512 
    compatible_brands: isomiso2 
    encoder   : Lavf55.1.100 
    Duration: 00:00:01.00, start: 0.000000, bitrate: 135 kb/s 
    Stream #0:0(und): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 
          125 kb/s 
    Metadata: 
     handler_name : SoundHandler