Почему ffmpeg не удается преобразовать файл .ts в .mpeg?

2389
Multisync

Я хотел бы без потерь конвертировать .tsфайл в более удобный формат файла, например .mpeg. К сожалению, в преобразованном файле отсутствует звук. По крайней мере, я ничего не слышу при воспроизведении в VLC (хотя Видео работает), а некоторые другие медиаплееры ( Аудитория ) вообще не открывают его. Можете ли вы сказать мне, почему FFmpeg не удалось, и как это сделать правильно?

Спасибо!

Команда, которую я использовал:

privat@manuel-Inspiron-3721:~/Downloads$ ffmpeg -i hls-720p.ts -codec copy hls-720p.mpeg

Выход FFmpegs:

ffmpeg version 2.8.10-0ubuntu0.16.04.1 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, mpegts, from 'hls-720p.ts': Duration: 00:06:31.86, start: 1.400000, bitrate: 1432 kb/s Program 1  Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 139 kb/s [mpeg @ 0x1c7b680] VBV buffer size not set, using default size of 130KB If you want the mpeg file to be compliant to some specification Like DVD, VCD or others, make sure you set the correct buffer size Output #0, mpeg, to 'hls-720p.mpeg': Metadata: encoder : Lavf56.40.101 Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, 139 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 9796 fps=0.0 q=-1.0 Lsize= 62752kB time=00:06:31.86 bitrate=1311.8kbits/s  video:57506kB audio:4853kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.631245% 

Информация о кодеках VLC

Оригинал .ts-файл: Оригинальный файл .ts

Преобразованный .mpeg-файл: Преобразованный файл .mpeg

0

1 ответ на вопрос

2
NuTTyX

Если вы используете, -c copyвы не кодируете видео, а просто меняете «конверт», который не поддерживает ни h264, ни aac.

Файлы .mpeg должны содержать видео mpeg1 o mpeg2 и аудио уровня mpeg1 1,2 или 3. H264 - это mpeg4, а aac - расширение mpeg2.

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

Попробуйте закодировать его в .mp4, чтобы сделать его более совместимым. Я думаю, что вы можете сохранить флаг копирования в этом случае.

Примечание. .Mpeg является очень старым форматом, и вывод, удаляющий флаг копирования, будет производить видео низкого качества.

При выборе `.mp4` в качестве выходного файла я получил следующую ошибку:` [mp4 @ 0x901680] Обнаружен неправильный битовый поток AAC: используйте звуковой фильтр битового потока 'aac_adtstoasc', чтобы исправить его ('-bsf: aac_adtstoasc' опция с ffmpeg) ` , Я мог бы исправить это, используя предложенную опцию `-bsf: aac_adtstoasc`, и теперь она работает. Преобразование все еще без потерь? Я очень обеспокоен тем, чтобы не вносить никаких потерь при конверсии. Multisync 7 лет назад 0
Этот фильтр создает MPEG-4 AudioSpecificConfig из заголовка ADTS MPEG-2/4 и удаляет заголовок ADTS. Если вас не просили удалить флаг копирования для использования фильтра, можно с уверенностью предположить, что не было перекодирования и потери качества. NuTTyX 7 лет назад 1

Похожие вопросы