Почему ffmpeg не удается преобразовать файл.ts в.mpeg?
Я хотел бы без потерь конвертировать аа .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
-файл:
1 ответ
Если вы используете -c copy
Вы не кодируете видео, просто меняете "конверт", который не поддерживает ни h264, ни aac.
Файлы.mpeg должны содержать видео mpeg1 o mpeg2 и аудио уровня mpeg1 1,2 или 3. H264 - это mpeg4, а aac - расширение mpeg2.
VLC может воспроизводиться, поскольку он может воспроизводить практически все, но ваш "закодированный" выход теперь менее совместим, чем когда-либо.
Попробуйте кодировать его в.mp4, чтобы сделать его более совместимым. Я думаю, что вы можете поддерживать флаг копирования в этом случае.
Примечание..Mpeg - очень старый формат, и вывод, удаляющий флаг копирования, приведет к воспроизведению видео низкого качества.