เหตุใด ffmpeg จึงล้มเหลวด้วยการแปลงไฟล์. ts เป็น. mp4


0

ผมอยากจะlosslesslyแปลง AA ไฟล์ในรูปแบบไฟล์ที่ใช้งานได้มากขึ้นเช่น.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%

ข้อมูลตัวแปลงสัญญาณ VLCs

.tsไฟล์ต้นฉบับ: ไฟล์. ts ดั้งเดิม

แปลง.mpegไฟล์แล้ว: แปลงไฟล์. mp4

คำตอบ:


2

หากคุณกำลังใช้-c copyคุณไม่ได้เข้ารหัสวิดีโอเพียงแค่เปลี่ยน "ซองจดหมาย" ซึ่งไม่รองรับทั้ง h264 หรือ aac

ไฟล์. mp4 ต้องมีวิดีโอ mpeg1 o mpeg2 และ mpeg1 layer 1,2 หรือ 3 เสียง H264 คือ mpeg4 และ aac เป็นส่วนเสริมของ mpeg2

VLC อาจเล่นได้เนื่องจากเกือบจะเล่นได้ทุกอย่าง แต่เอาต์พุต "เข้ารหัส" ของคุณสามารถใช้งานร่วมกันได้น้อยกว่าที่เคย

ลองเข้ารหัสเป็น. mp4 เพื่อให้ใช้งานร่วมกันได้มากขึ้น ฉันคิดว่าคุณสามารถ mantain การตั้งค่าสถานะการคัดลอกในกรณีนี้

หมายเหตุ: .mpeg เป็นรูปแบบที่เก่ามากและเอาต์พุตที่ลบแฟล็กการคัดลอกจะทำให้วิดีโอมีคุณภาพต่ำ


เมื่อเลือก.mp4เป็นไฟล์เอาต์พุตฉันได้รับข้อผิดพลาดดังต่อไปนี้: [mp4 @ 0x901680] Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg). ฉันสามารถแก้ไขได้โดยใช้-bsf:a aac_adtstoascตัวเลือกที่เสนอและใช้งานได้ในขณะนี้ การแปลงยังคงไม่สูญเสียหรือไม่ ฉันกังวลมากเกี่ยวกับการไม่แนะนำการสูญเสียการแปลงใด ๆ
Multisync

1
ตัวกรองนี้สร้าง MPEG-4 AudioSpecificConfig จากส่วนหัว MPEG-2/4 ADTS และลบส่วนหัว ADTS หากคุณไม่ได้รับการร้องขอให้ลบการตั้งค่าสถานะการคัดลอกเพื่อใช้ตัวกรองมันปลอดภัยที่จะถือว่าไม่มีการเข้ารหัสซ้ำและไม่มีการสูญเสียคุณภาพ
NuTTyX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.