Den 09-02-2020 kl. 15:16 skrev Robin A. Jensen via ffmpeg-user:

Den 09-02-2020 kl. 02:19 skrev Reino Wijnsma:
On 2020-02-09T01:59:53+0100, Robin A. Jensen via ffmpeg-user <[email protected]> wrote:
ffmpeg -txt_format text -txt_page 599 -ss 00:04:45 -i 'Beck_ _je for _je (4).ts' -to 00:05:00 -map 0:s:0 -c:s:2 mov_text -metadata:s:2 language=dan 'Beck _je for _je (4).srt' The -txt_page number i get by using VLC. So now i have the .srt file. Don't know how else to get ffmpeg to pick that one subtitle.
Then i encode my video as i always do.
Then i combine it with:
ffmpeg -i 'Beck _je for _je (4).mp4' -i 'Beck _je for _je (4).srt' -c:v copy -c:a copy -c:s mov_text 'test.mp4'
This seems to be working. But is a long way to go.
ffmpeg -ss 00:04:45 -c:v h264_mmal -i 'Beck_ _je for _je (4).ts' -to 00:05:00 -map 0:0 -c:v h264_omx -b:v 4800k -map 0:2 -map 0:3 -c:a copy -map 0:1 -txt_format text -txt_page 599 -c:s mov_text -metadata:s:s language=dan 'Beck Øje for øje (4).mp4'

Wouldn't this work? But again, without a sample we can't verify.

-- Reino
_______________________________________________

Hey Reino.
Just a test as you suggestet, but it will create a new error. I correctet the channels that need to be encoded.
ffmpeg -ss 00:04:45 -c:v h264_mmal -i 'Beck_ _je for _je (4).ts' -to 00:05:00 -map 0:0 -c:v h264_omx -b:v 4800k -map 0:2 -c:a copy -map 0:1 -txt_format text -txt_page 599 -c:s mov_text -metadata:s:s language=dan 'Beck _je for _je (4).mp4' ffmpeg version git-2020-02-08-adea33f Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --arch=armhf --enable-gpl --enable-nonfree --enable-omx --enable-omx-rpi --enable-mmal --enable-libzvbi
  libavutil      56. 39.100 / 56. 39.100
  libavcodec     58. 68.100 / 58. 68.100
  libavformat    58. 38.100 / 58. 38.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 75.100 /  7. 75.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
[h264 @ 0x3579c90] Increasing reorder buffer to 2
[mpegts @ 0x35744d0] start time for stream 4 is not set in estimate_timings_from_pts
[mpegts @ 0x35744d0] PES packet size mismatch
[mpegts @ 0x35744d0] Packet corrupt (stream = 2, dts = 3024240201).
[mpegts @ 0x35744d0] PES packet size mismatch
[mpegts @ 0x35744d0] Packet corrupt (stream = 3, dts = 3024240201).
Input #0, mpegts, from 'Beck_ _je for _je (4).ts':
  Duration: 01:42:01.16, start: 27482.817233, bitrate: 9647 kb/s
  Program 7310
    Metadata:
      service_name    : C More Hits
      service_provider: YouSee
    Stream #0:0[0x99c]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc     Stream #0:1[0x99e](swe,nor,dan,fin): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)     Stream #0:2[0x9a2](dan): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 384 kb/s     Stream #0:3[0x9a3](nor): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 384 kb/s
  No Program
    Stream #0:4[0x12]: Data: epg
File 'Beck _je for _je (4).mp4' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_mmal) -> h264 (h264_omx))
  Stream #0:2 -> #0:1 (copy)
  Stream #0:1 -> #0:2 (dvb_teletext (libzvbi_teletextdec) -> mov_text (native)) Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or height
_______________________________________________
I finally got the right commandline. I'll provide this solution for others, so they don't have to spend so much time on a simple task.
Input file info:
Input #0, mpegts, from 'Beck_ _je for _je (4).ts':
  Duration: 01:42:01.16, start: 27482.817233, bitrate: 9647 kb/s
  Program 7310
    Metadata:
      service_name    : C More Hits
      service_provider: YouSee
    Stream #0:0[0x99c]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc     Stream #0:1[0x99e](swe,nor,dan,fin): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)     Stream #0:2[0x9a2](dan): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 384 kb/s     Stream #0:3[0x9a3](nor): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 384 kb/s
  No Program
    Stream #0:4[0x12]: Data: epg

To be encided: Video 0:0, Audio 0:2 and subtitle stream 0:1:2 (dan)
It's importent to have -txt_format text -txt_page 599 -fix_sub_duration in front of input file. The number for txt_page 599 is found by playing file in VLC and choose the subtitle needed. It will be showed in the tele-text area. -fix_sub_duration will ensure that the subtitle is showed one by one. Without it, first subtitle come on to screen. Then the second will push the first one up on screen. The third subtitle will push 1. and 2. subtitle up and after 5 subtitles, your screen is full of subtitles!
So i ended up with this commandline for the file:

ffmpeg -txt_format text -txt_page 599 -fix_sub_duration -ss 00:02:40 -c:v h264_mmal -i 'Beck_ _je for _je (4).ts' -to 01:32:10 -map 0:0 -c:v h264_omx -b:v 4800k -map 0:2 -c:a copy -map 0:1 -c:s:0 mov_text -metadata:s:s language=dan 'Beck(4).mp4'

Issue is closed.

_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to