У меня есть приложение django, и я использую вызов subprocess.call('avconv -i ' + fileName + ' ' + fileNew, shell = True). Входной файл представляет собой файл .3gp, в котором только монофонический аудиопоток aac преобразован в файл .ogg. Преобразование прошло успешно, но новый файл кажется поврежденным, и звук не воспроизводится.
Вот что я получил после попытки получить информацию для одного из входных файлов:
xxx:/workspace/build$ avconv -i audio.3gp
avconv version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
built on Feb 6 2014 20:56:59 with gcc 4.6.3
audio.3gp: Invalid data found when processing input
Вот успешное преобразование:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/workspace/multi-device-audio-project/webapp/../static/data/matpat.3gp':
Metadata:
major_brand : 3gp4
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2014-02-17 10:53:36
Duration: 00:00:20.60, start: 0.000000, bitrate: 13 kb/s
Stream #0.0(eng): Audio: aac, 8000 Hz, mono, s16, 12 kb/s
Metadata:
creation_time : 2014-02-17 10:53:36
Output #0, ogg, to '/workspace/multi-device-audio-project/webapp/../static/data/matpat.ogg':
Metadata:
major_brand : 3gp4
minor_version : 0
compatible_brands: isom3gp4
creation_time : 2014-02-17 10:53:36
encoder : Lavf53.21.1
Stream #0.0(eng): Audio: flac, 8000 Hz, mono, s16, 200 kb/s
Metadata:
creation_time : 2014-02-17 10:53:36
Stream mapping:
Stream #0:0 -> #0:0 (aac -> flac)
Press ctrl-c to stop encoding
size= 216kB time=20.66 bitrate= 85.5kbits/s
video:0kB audio:214kB global headers:0kB muxing overhead 0.612994%
Вот один из примеров файлов: ссылка
Следующие строки использования также возвращают мне ошибку: audio.3gp: Неверные данные обнаружены при обработке ввода::
avconv -i audio.3gp -vn -acodec libvorbis -aq 50 audio.ogg
avconv -i audio.3gp -acodec vorbis audio.ogg
Могут ли входные файлы быть повреждены, я думаю, они записаны на Nexus 7?